[短いバージョン] 単体テスト済みの C++ プロジェクトで、異なるフォルダーにあるにもかかわらず、同じ名前の 2 つのソース ファイルを使用できません。g++ と make はお互いに不機嫌です。(それとも私がバカなのかもしれません)
[長いバージョン] make/g++/gtest のセットアップで問題が発生しました。g++ が依存関係を自動生成すると、次のようなものが生成されます。
event_handler.o: src/os/event_handler.h src/os/event.h
しかし、次のようなものが必要です(ターゲットのフルパス):
src/os/event_handler.o: src/os/event_handler.h src/os/event.h
その理由は、次のようなファイルがある場合です。
src/os/event_handler.cpp // contains EventHandler class
次のようなコンパニオン ファイルがあります。
test/src/os/event_handler.cpp // contains EventHandlerTest unit test class
...そのため、.o ファイルは両方とも、自動生成された依存関係リストに event_handler.o として表示されます。g++ にフル パスを強制的に指定する方法はありますか、それともテスト ファイルの名前を次のように変更する必要がありますか。
test/src/os/event_handler_test.cpp
オンラインまたはドキュメントで何も見つけることができませんでした。