genIoco / gcc-vxworks

Cross compiler tool chain for vxworks
1 stars 0 forks source link

请问您之前尝试过用这个工具交叉编译吗?成功了吗?为什么我最终生成的不是一个可执行文件? #1

Closed yuzu-ogura closed 5 months ago

genIoco commented 5 months ago

是的成功了,生成后的文件类型vxworks的可执行文件,在vxworks中可使用ld命令加载程序,并运行main主函数,如下图 image

yuzu-ogura commented 5 months ago

是的成功了,生成后的文件类型vxworks的可执行文件,在vxworks中可使用ld命令加载程序,并运行main主函数,如下图 image

谢谢您的回复,可以帮我看一下,是哪里出现错误了吗? 这是我的vxworks版本,我没有真实的环境,是在虚拟机上安装的vxworks: image

我选择直接使用二进制安装的,没有使用源码编译安装(不知道是否和这个有关系) 我的文件列表是这样的,我是在windows上交叉编译的(没有选择Ubuntu18.04) image 然后main.cpp是这样的 image CMakeLists.txt是这样的 image 接下来执行编译cmake: image 然后是构建ninja: image 最终加载文件时候出错了: image

genIoco commented 5 months ago

我也是虚拟机的vxworks,我用Workbench编译了相同的代码也是报相同的错误,目前我怀疑是vxworks kernel缺少部分c++的组件,感觉通过手动向vxworks kernel中添加相应的组件或许能够解决这个问题。

yuzu-ogura commented 5 months ago

是的成功了,生成后的文件类型vxworks的可执行文件,在vxworks中可使用ld命令加载程序,并运行main主函数,如下图 image

既然虚拟机的vxworks有问题,那您这里加载是怎么成功的?另外,像您说的手动向vxworks kernel中添加组件要怎么操作呢?

genIoco commented 5 months ago

我的代码是纯C语言的代码,并不是c++的,添加组件需要用到Workbench编译vxworks系统,在Workbench里面有一个Kernel Configuration,里面配置项太多了。 PS:只是猜测不确定行不行,毕竟组件太多了 image

yuzu-ogura commented 5 months ago

好的,原来是这样,非常感谢您的回答