我有一个可以完美编译的项目gcc,但无法在 Greenhills Integrity 环境下编译。
问题归结为这三个文件:
MyVector.cpp // contains function testVector
MyVector.hpp // contains template vector<>
SomeFile.cpp
MyVector.hpp包含向量的模板类,并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编辑了我所有的源代码。
我不知道是怎么回事。我会很高兴有任何线索。