【问题标题】:VxWorks with Eclipse - missing header filesVxWorks with Eclipse - 缺少头文件
【发布时间】:2013-03-25 13:09:18
【问题描述】:

我想使用 CmakeEclipse 3.7 Indigo CDTVxWorks 6.8 编译一个库(使用 VxWorks PentiumPower-PC 编译器设置)。 cmake 步骤工作正常,我得到了可以使用的 Eclipse 项目。 但是由于缺少标头,编译失败。

示例:

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

这会失败,因为缺少sys/socket.h。 包含目录C:/&lt;path to vxworks&gt;/target/h,其中大多数标头可用(包括sys 目录,但其中没有 socket.h!)已设置。 缺少的socket.hC:/&lt;path to vxworks&gt;/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_BASEWIND_HOMEWIND_LIC_PROXY在eclipse中设置。

我正在从 Win7 交叉编译。

【问题讨论】:

  • 您介意分享您的 cmake 交叉编译文件吗?我正在努力让 vxWorks6.9 交叉编译工作。

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


【解决方案1】:

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

【讨论】:

  • 谢谢,现在所有标题都可用了。
猜你喜欢
  • 1970-01-01
  • 2015-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多