带有Eclipse的VxWorks - 缺少头文件

时间:2013-03-25 13:09:19

标签: c++ c cmake eclipse-cdt vxworks

我想使用 Cmake Eclipse 3.7 Indigo CDT (使用VxWorks Pentium VxWorks 6.8 编译库>和 Power-PC 编译器设置)。 cmake步骤工作正常,我准备使用Eclipse项目。 但由于缺少标题,编译失败。

示例:

#if defined __VXWORKS__
#include <sys/socket.h>
// some more includes here
#endif

此操作失败,因为缺少sys/socket.h。 包括目录C:/<path to vxworks>/target/h,其中大多数标头可用(包括sys目录,但其中有 socket.h!)已设置。 缺少的socket.hC:/<path to vxworks>/target/h/wrn/coreip/sys。两条路径都设置为包含目录 - 但仍然缺失。

我已经开始编写一些“虚拟标题” - 标题,这些标题位于target/h的正确子目录中,仅包含来自target/h/wrn/coreip的实际标题。这个解决方案有效,但是这些标题包含了更多的标题,所以那些需要这样的解决方法(然后新的标题需要更多...)。 我想知道为什么即使在eclipse中设置包含路径它也不起作用。

VxWorks的大多数标题都没有此问题;它似乎只适用于网络。

是否有魔术或我缺少的东西?


缺少标题错误消息:

  

错误:sys / socket.h:没有这样的文件或目录

编译时得到的警告

  

[这里的vxworks路径] /h/vsbConfig.h:42:2:警告:#warning   “未指定VxWorks源构建(VSB)项目;使用默认值   $ WIND_BASE / target / lib / h / config下的VxWorks UP配置“

在eclipse中设置环境变量WIND_BASEWIND_HOMEWIND_LIC_PROXY

我正在从Win7进行交叉编译。

1 个答案:

答案 0 :(得分:2)

在eclipse中添加包含目录的路径是不够的。你必须将它添加到 cmakelists 。您可以使用include_directories("[your path here]")来执行此操作。