【发布时间】:2013-03-25 13:09:18
【问题描述】:
我想使用 Cmake 和 Eclipse 3.7 Indigo CDT 为 VxWorks 6.8 编译一个库(使用 VxWorks Pentium 和 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.h 是C:/<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 Source Build (VSB) 项目;使用默认值 $WIND_BASE/target/lib/h/config"下的VxWorks UP配置"
环境变量WIND_BASE、WIND_HOME和WIND_LIC_PROXY在eclipse中设置。
我正在从 Win7 交叉编译。
【问题讨论】:
-
您介意分享您的 cmake 交叉编译文件吗?我正在努力让 vxWorks6.9 交叉编译工作。
标签: c++ c cmake eclipse-cdt vxworks