我想使用 Cmake 和 Eclipse 3.7 Indigo CDT(使用 VxWorks PentiumVxWorks 6.8 编译一个库> 和 Power-PC 编译器集)。 cmake 步骤工作正常,我得到了随时可用的 Eclipse 项目。 但是由于缺少 header 而编译失败。
示例:
#if defined __VXWORKS__
#include <sys/socket.h>
// some more includes here
#endif
失败是因为 sys/socket.h
不见了。
包含目录 C:/<path to vxworks>/target/h
大多数 header 可用的地方(包括 sys
目录,但没有 socket.h
在里面!)设置。
失踪的socket.h
是C:/<path to vxworks>/target/h/wrn/coreip/sys
.两个路径都设置为包含目录——但仍然缺失。
我已经开始编写一些“虚拟 header ” – header 放置在target/h
的适当子目录中并且只包含来自 target/h/wrn/coreip
的实际 header .该解决方案有效,但这些 header 本身包含更多 header ,因此这些 header 也需要这样的解决方法(然后新的 header 需要更多……)。
我想知道为什么即使在 eclipse 中设置包含路径它也不起作用。
大部分VxWorks的header都没有这个问题;似乎只有网络的那些。
是否有任何魔术或我遗漏的东西?
缺少 header 错误消息:
error: sys/socket.h: No such file or directory
我在编译时收到的警告:
[vxworks path here]/h/vsbConfig.h:42:2: warning: #warning "VxWorks Source Build (VSB) project not specified; using default VxWorks UP configuration under $WIND_BASE/target/lib/h/config"
环境变量 WIND_BASE
, WIND_HOME
和 WIND_LIC_PROXY
在 eclipse 中设置。
我正在从 Win7 交叉编译。
最佳答案
在eclipse中添加包含目录的路径是不够的。您还必须将它添加到 cmakelists。您可以使用 include_directories("[your path here]")
来执行此操作。
关于c++ - VxWorks with Eclipse - 缺少头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15615775/