2016-03-30 23 views
-1

kullanılarak basit bir şekilde aşağıdaki dosyaları içerir 11 ++ c basit bir program yazmak için bir atama var Ana işlev main.cpp dosyasında belli ki ana işlev açıktır. main.cpp, 2 başlık dosyasını içerir ve bunları kullanır. Ben Linux üzerinde derlemeye çalıştım derleme C++ 11 Program makefile

yazdım:

g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -o prog 

Ve ben çalıştırabilir bir prog dosya var.

Sonra bir makefile kullanarak derlemeye çalıştık, ne yaptığını şuydu:

all: 
    g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -o prog 

ve tüm

Ne yazık çalışmıyor yapmak çarptı. Web’de düzgün bir şekilde nasıl yapılacağını öğrenmek için denemeye çalışın, şansınız yok. Bana nasıl yapılması gerektiğini söyler misiniz?

Ayrıca nasıl bir akıllı derleme yapmak için, nasıl yapılır? yani sadece yukarıdaki dosyalar değiştiğinde derlenir.

Teşekkürler! Makefile

all: 
<TAB>g++ -std=c++11 -O2 -Wall -pedantic -pthread main.cpp -o prog 

Bu işe, burada <TAB> biz takmanız gerekir sekme karakteri olduğuna dikkat edin edecek yılında

+6

"Ne yazık ki çalışmıyor" ne anlama geliyor? Derleme Bazı hata meseleleri var mı? Ikinci dize – DvoryankinEvgeny

+0

tablolama ile başlamalıdır. –

+1

Benim için çalışır 'g ++' boşluk değil bir 'TAB' ile girintili olduğundan emin olun. – Galik

cevap

0

.

Basitçe make varsayılan kural ile bir kestirme sağlayan,
make 

düzenlenmek suretiyle Veya basit durumlar için derlenmiş. without using Makefile kodumuzu derleyebilirsiniz.

CXXFLAGS=-std=c+=11 -Wall -pedantic -pthread make main 

Ama bu yaklaşım dosyasının adı gibi program ismi olacak, yani ana burada, yerine sen

0

sadece aşağıdaki satırları ile Makefile oluşturun ve bunu kontrol istediği gibi prog:

Ve yazın make main. Yapın, yerleşik kurallarını arayacak ve 'dan main adlı derlenmiş bir programa ulaşmanın bir yolu olduğunu keşfedeceksiniz.Sadece make yazın isterseniz

$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o [email protected] 

sonra ekleyebilirsiniz::

all: main 

Ve yerleşik örtük kurallar main inşa edecek Daha sonra şuna benzer dahili bir kural çalıştırır sizin için make yazdığınız zaman.