我意识到这可能是一个非常愚蠢的问题 . 请幽默我:
True or False: 编译程序以在VxWorks平台上运行的唯一方法是从WindRiver购买Tornado或Workbench等开发环境 .
(我正在寻找一个免费/开源的解决方案来编译VxWorks平台 . )
在学术许可之外(无论如何都会使用VxWorks安装),没有任何方法可以合法地编译vxWorks平台的代码 .
从技术上讲,您可以获得用于编译VxWorks代码的GNU工具链 .
您将遇到的问题是您将无法访问编译代码或链接库所需的头文件 .
由于VxWorks是专有的,因此他们需要他们提供的工具(Workbench / Tornado),以便为他们的操作系统开发 .
可以使用通用GNU交叉编译器生成ELF文件,并使用 ld 命令将它们加载到正在运行的VxWorks系统上 . 但是,我不建议将其用于概念验证或初步实验之外的任何事情--VxWorks库和Wind River的精湛文档都是必要的 .
ld
在开发主机上:
powerpc-elf-eabi-gcc -c foo.c
然后在目标驻留shell上,已经从开发主机安装了一个文件系统(例如,通过NFS):
-> ld < foo.o -> main()
(函数 main() 来自 foo.c )
main()
foo.c
3 回答
在学术许可之外(无论如何都会使用VxWorks安装),没有任何方法可以合法地编译vxWorks平台的代码 .
从技术上讲,您可以获得用于编译VxWorks代码的GNU工具链 .
您将遇到的问题是您将无法访问编译代码或链接库所需的头文件 .
由于VxWorks是专有的,因此他们需要他们提供的工具(Workbench / Tornado),以便为他们的操作系统开发 .
可以使用通用GNU交叉编译器生成ELF文件,并使用
ld
命令将它们加载到正在运行的VxWorks系统上 . 但是,我不建议将其用于概念验证或初步实验之外的任何事情--VxWorks库和Wind River的精湛文档都是必要的 .在开发主机上:
然后在目标驻留shell上,已经从开发主机安装了一个文件系统(例如,通过NFS):
(函数
main()
来自foo.c
)