で完全にコンパイルされるプロジェクトがありますgccが、GreenhillsIntegrity環境ではコンパイルできません。
問題は次の3つのファイルに要約されます。
MyVector.cpp // contains function testVector
MyVector.hpp // contains template vector<>
SomeFile.cpp
MyVector.hppベクトルのtemplate-classがMyVector.cpp含まれ、のテンプレートとは関係のないテスト関数が含まれていますMyVector.hpp。
さて、でMyVector.hppのvectorテンプレートを使用しているとSomeFile.cpp、どういうわけか、関数testVectorはに注入されSomeFile.cppます。での使用をやめると(もちろん、まだ使用vectorしていますが、テンプレートをインスタンス化していないだけです)、完全に機能します。SomeFile.cpp#include
さらに、関数に警告を挿入すると、コンパイル時にtestVectorコンパイラーが警告を表示しました。SomeFile.cpp
SomeFile.cppさらに、で物事を変更すると、ビルドシステムが再コンパイルされMyVector.cppます。
testVector関数をから削除MyVector.cppして新しいものに移動すると、NewFile.cppコンパイルされます。
いいえ、誤ってファイルを含めなかっcppたので、正直に言って、ファイルを再確認し、grepすべてのソースコードを編集しました。
何が起こっているのかわかりません。手がかりがあれば嬉しいです。