このディレクトリツリーに従って、UnitTest++をプロジェクトで動作させようとしています。
Project/
|-- src/
|-- test/
| |-- test.cpp
|-- unittest-cpp/
| |-- UnitTest++/
| |-- libUnitTest++.a
| |-- src/
| |-- UnitTest++.h
|-- Makefile
Projectディレクトリにいるときにg++でコンパイルしようとしています。私のtest.cppファイルには、UnitTest++入門コードが含まれています。
私は次のことを試しました:
g++ -Lunittest-cpp/UnitTest++/ -lUnitTest++ -Iunittest-cpp/UnitTest++/src/ \
test/test.cpp -o Test
私がよく理解しているなら、-Lは静的ライブラリへのパスを与えることです。-l(小さいL)はライブラリ名を表し、-I(大文字のi)はインクルードパスを表します。
2つの異なる結果が得られます。/ usr / bin/???にlibが見つからないことを通知します。または、unittest::*への未定義の参照があることを教えてくれます。
ライブラリへの相対パスを指定しているため、コンパイルできませんか?複数のディレクトリでg++を使用するのは初めてで、Makefileで機能させる前に、g++がどのように機能するかを理解しようとしています。
[編集]:ライブラリとヘッダーをリンクする前に、test/test.cppパラメーターを指定する必要がありました。だから、これはうまくいきました:
g++ test/test.cpp -Lunittest-cpp/UnitTest++ -lUnitTest++ -Iunittest-cpp/UnitTest++/src -o Test