0

大規模な C ライブラリを C++ でラップし、外側のレイヤーの一部を C++ に変換しています。

変換で一度に 1 つのものだけを壊すという原則に従って、私は後で 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++ ファイルにのみ適用されるように指定する方法はありますか?

4

1 に答える 1

0

これを達成する 1 つの方法は、コンパイル プロセスを 2 つの異なる段階に分割することです。

1) std 指定子を使用して個別にオブジェクト ファイルにコンパイルします。

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
于 2013-04-06T06:22:57.553 に答える