非常适合编程/软件的初学者。我试图将一些为linux编写的代码移植到我的vxworks
项目中。
当包含 pthread.h 时,它似乎包含来自C:\WindRiver\vxworks-6.8\target\h
的标题但是我注意到C:\WindRiver\vxworks-6.8\target\usr\h
中有另一个标题稍有不同。
差异的一个例子是其中一个不存在函数pthread_mutexattr_settype
。根据v6.8文档,pthread_mutexattr_settype
是我应该有权访问的函数。
也许我设置错误的路径?我是否需要为我的项目做一些特别的事情才能知道在哪里看?当我将构建路径更新为 usr 文件夹时...当我右键单击并打开声明时,它为我提供了两个选项(两个位置)。是的,我的构建路径中只有一个位置。
答案 0 :(得分:4)
阅读文档总是很好的第一步。
只有在使用实时进程(RTP)项目时,VxWorks才符合POSIX PSE5.2。 这就是/ usr / ...标头指向的内容。
如果您正在构建内核模块(DKM),那么某些POSIX接口可用,但显然不是您想要的端口。
因此,使用RTP是您想要移植代码。
请参阅“VxWorks应用程序编程人员指南”。 3.4.2节(VxWorks 6.9)明确指出目标/ usr / h是系统头文件用于RTP的位置。并提醒您不要在target / h中引用头文件。
请参阅第9节关于POSIX支持。