2013-04-06 29 views
0

我正在用C++封裝一個大型C庫並將一些外部層轉換爲C++。有沒有辦法將g ++中的-std = ***應用於只有一個文件

遵循在轉換中一次只能分割一件東西的原則,直到後來才寫makefile。

我要做到以下幾點:

g++ a.c b.c d.c e.c --std=c++11 test.cpp 

甚至

g++ a.c b.c d.c --std=c++11 e.cpp test.cpp 

晚了一點。

是否有指定-std = C++ 11僅適用於C++文件的方法?要做到這一點

+0

有很多快速和骯髒的方式來做到這一點。但是如果你的項目會增長,你應該看看Makefiles。 – mvarshney 2013-04-06 03:49:41

回答

0

一種方法是打破你的編譯過程中兩個不同階段:

1)編譯與性病符單獨對象文件:

g++ -S a.c b.c d.c 
g++ -S a.cpp b.cpp d.cpp -std=c++11 

2)編譯使用所有最終的可執行文件生成的目標文件:

g++ -o myelf a.s b.s d.s 
+0

這不是一個好的解決方案,但它是一個解決方案。 – 2013-04-11 15:00:11

+0

然而,您可以跳過第二步並執行:g ++ -S a.c b.c d.c; g ++ a.s b.s c.s d.cpp -std = C++ 11 – 2013-04-11 15:02:38

相關問題