2012-01-29 75 views
3

的控制順序假設你有兩個類A並在兩個不同的文件分別A.cppB.cppB,你怎麼能保證class Aclass B之前編譯。在C++編譯

+3

你爲什麼要這樣做?你面臨的問題是什麼? – 2012-01-29 13:52:48

+0

這是爲什麼要求? – hmjd 2012-01-29 13:53:04

+0

'gcc A.cpp; gcc B.cpp' ..這是關於Makefile的問題嗎?你爲什麼要執行這個命令?它沒有任何意義。 – 2012-01-29 13:53:33

回答

4

你不能。你也應該不在意,因爲不同的翻譯單位的編制是獨立

+1

你可以。這樣做沒有意義.. – 2012-01-29 13:56:11

+0

當你的構建需要時間時,它會產生變化! – justin 2012-01-29 14:19:50

+0

@Justin:但是爲什麼你編譯的是哪個訂單? – 2012-01-29 14:22:15

0

使用此生成的文件:

x.out: b.o 
    g++ a.o b.o -o x.out 

b.o: a.o b.cpp 
    g++ b.cpp -c 

a.o: a.cpp 
    g++ a.cpp -c 

a.cpp將b.cpp

+0

'b.o:b.cpp | a.o'會更好。 – 2012-01-29 14:21:34

+0

@Over Charlesworth只是想學習。管道帶來了什麼價值。它是Linux的makefile語法? – qqqqq 2016-09-30 22:47:17

0

它歸結爲你的IDE之前進行編譯,或者你用來構建程序的任何東西。

如果它全部在標題中,你可以簡單地在B.h.中包含A.h。