2012-03-19 116 views
0

我正在使用gcc編譯器。使用gcc進行遞歸編譯

我的項目的源代碼樹看起來有點像這個

test$~: tree . 
. 
|-- folder 
| |-- hello.cpp 
| `-- hello.h 
`-- main.cpp 

1 directory, 3 files 
test$~: 

文件main.cpp包含main()功能,並在名爲folder

所以在所有迄今爲止目錄由main.cpp 謊言調用所有功能我我從來不需要將一些源代碼放在子目錄下。

我所尋找的,總之,是在子目錄及其子目錄遞歸彙編等...這個命令應該從代碼項目的 主目錄中調用一些海灣合作委員會的命令。

+1

AFAIK,GCC沒有這樣的機制。通常,這種事情由您的構建系統處理(例如Make)。 – 2012-03-19 01:42:04

+0

有趣的想法。你有沒有找到手冊中的任何內容來暗示它可能是可能的。 AFAIK,這是不可能的,並沒有列出命令行上的所有文件。 – 2012-03-19 01:43:18

回答

0

我真的無法測試它在C++庫,因爲我沒有一個當前,但這應該工作:

find . -type f -iname *.cpp -execdir g++ {} \; 

我只是不記得省略-o選項時會發生什麼爲gcc。如果有必要,那麼這至少會讓你更接近解決方案。我會推薦使用makefile而不是

+1

'g ++ -o a.out $(find。-type f -iname * .cpp -print)'?無論如何,這是一個壞主意。 – 2012-03-19 02:02:17

+0

@VladLazarenko那麼這將把所有的編譯數據放入a.out? – 2012-03-19 02:06:42

+2

這應該找到所有文件並放入gcc的命令行,它將編譯它們並鏈接到'a.out'二進制文件。如果我們說bash + linux。 – 2012-03-19 02:09:30