WindRiver编译小结

本文档详细介绍了在WindRiver环境下进行编译设置的步骤,包括工程属性配置、宏定义、头文件路径设置、库依赖以及动态库管理。讨论了编译时可能遇到的问题,如路径设置、未定义的符号错误,并分享了实际部署中关于动态库、配置文件组织和跨平台兼容性的经验。提出了动态库和配置文件的优化策略,强调了目录结构清晰和版本区分的重要性。
摘要由CSDN通过智能技术生成

windriver编译设置

工程右键属性,Build Properties 中 Build Macros下DEFINES下设置宏定义
工程右键属性,c/c++ General下Indexer下Paths and Symbol里,Include Paths框内Build点击左侧小三角即显示工程依赖头文件路径,其中带红色x的是不存在的路径,若想要添加或删除路径点击右侧Edit进入編辑界面,即可修改路径。
工程右键属性,Build Properties 中Libraries中添加想要依赖的库。
工程右键属性,Build Properties 中Build Paths中添加头文件的路径。

编译时可能的问题

编译前要clear
编译的include路径\动态库路径设置好
编译前把中间文件生成好
道系统引入外部动态库:头文件+动态库(麒麟下不予编译,vxworks下宏定义解封编译)
道系统的动态库是.so后缀\可执行文件.vxe
受制于道系统,播放音视频得自己想办法
分文件夹应当更加清楚一些

有些ui_XXX.h中会包含相对路径,导致无法正常引入,需要注意
自己做编译实验得出的结论:windriver只是个交叉编译用的工具,编成.so还是.vxe的命念行指令暂不清楚如何设置

原料:【源码】【依赖库】【中间文件(主要是QT生成的中间.h.cpp)】
设置:在右键出的项目设置里配好了依赖路径了(有顺序要求)和T依赖库】
构建:在这值得编译环境的名字的文件夹中找到编译好的文件即可。

另外,之前我又同时所说产生中间文件的“不要覆盖”,在编译过程中是没有问题的,可以偷懒不去删除一些用不到的cpp或头文件。
但是在20201207的部署时后台报错是类似

[Undefined PLT symbol"_ZN14MainWindowTIHS18InitunHandledTableEv"]

这类错误(……ZN14,代表之后有14个字符是信息,18同理)
MainWindowTIHS是一个旧的但用不上的界面文件,采用“不覆盖,将原来的ui_文件放入文件夹”而编译过的就会有这个问题,经过我的逐个报错逐个删除的实验,编译通过后的报错只有动态库加载失败了(有我们依赖的动态库没vx版本的)

软件中有很多配置文件是写死在同一级目录下的,需要与编译好的可执行文件放在同级目录,在这次部署中合作单位的人告诉我上次部署的东西有大量的冗余动态库,实际上他们将大量通用库进行了集中放置,建议将启动时必须的加载文件写成配置文件形式以及目录拼接,便于部署环境变动时修改部署而不是重新编译。
——这次看到了人家单位的目录结构,是放在各个配置写好的文件夹,所有被调用动态库放在一个文件夹(包括我们的软件生成的动态库),由于我们的配置文件和资源文件放在同级污染了他们的目录结构,他们建议将自己的配置文件命名并放在同级目录下面。

还有,之前的分类总是按型号分类,实际上应当分类为"vxworks版”和"kylin版”,这在总体合作单位给的动态库里可以很好地对应,而且便于重新组织动态库的bin目录及开发插件的自带的配置文件。
实际上,还有一些没引用的动态库、引用了但不知系统版本的动态库,以及一些没用到却不敢删除的配置文件,等这些都解决了再将容易换系统版本的底层拆出来就可以实现快速多平台部署了。
用不到类似我们编译出来的“libXXXXcd.so”这类带d的动态库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

超自然祈祷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值