0

多くの.ccファイルを1つの.oファイルにコンパイルしたいと思います。

単体テストのソースファイルをunit_test.oファイルにビルドするためにbashスクリプトを使用していますが、「g ++:-oを-cで指定したり、-Sを複数のファイルで指定したりすることはできません」とリンクしています。これらのソースファイルは、スクリプトの次の段階にあります。

これまでのところ、私は持っています。

g++ -Wno-deprecated -std=c++0x \
    -o $Unit_Test_Output_Directory/unit_test.o \
    -c $Unit_Test_Source_Directory/test1.cc $Unit_Test_Source_Directory/test2.cc

その後、-Iと-Lを取得し、bashの「\」を使用してコマンドを複数の行に分割します。

次に、リンク段階で、unit_test.oとソースファイルの.oをunit_test_executableにリンクします。

誰かが私を助けてくれますか?-o unit_test1.o -c test1.ccのビルド関数を呼び出し続けてから、テスト2 ...を呼び出し、リンク段階でunit_test1.oとunit_test2.oをリンクする必要がありますか?

私も失敗しました:

g++ -Wno-deprecated -std=c++0x \
    -o $Unit_Test_Output_Directory/unit_test1.o  \
    $Unit_Test_Output_Directory/unit_test2.o \
    -c $Unit_Test_Source_Directory/test1.cc \
    $Unit_Test_Source_Directory/test2.cc
4

1 に答える 1

1

複数のソースファイルを単一のオブジェクトファイルにコンパイルすることはできません。各ソースファイルは、独自のオブジェクトファイルにコンパイルする必要があります。

ソースファイルごとに個別に行う必要があります。

g ++ -Wno-deprecated -std = c ++ 0x \
    -o $ Unit_Test_Output_Directory / unit_test1.o \
    -c $ Unit_Test_Source_Directory / test1.cc

g ++ -Wno-deprecated -std = c ++ 0x \
    -o $ Unit_Test_Output_Directory / unit_test2.o \
    -c $ Unit_Test_Source_Directory / test2.cc
于 2013-03-13T13:29:25.323 に答える