关于tinyxml即C++库在vxWorks中作为动态库的调用问题

saltyren 2012-04-29 03:50:43
各位大虾,我的工程需要读取中文xml文件,使用vxWorks自带的读取xml文件只能读英文内容,于是自己尝试更改很流行的tinyxml类,建了一个新工程,居然成功了,可以读取中文了,但是我有个问题啊。

我的主工程应该只能用C编译,因此打算把读取xml文件这部分功能做成一个.so文件,然后.c文件调用函数即可,但是运行即报LoadXml函数是Unresolved Symbols,请问这是为什么呢?我现在只是把C++的.so文件拷贝到我的C工程中,这样是不是不行啊?

我的问题有这么几个:
1、能不能在C工程中调用C++的库,需要添加extern "C"之类的声明吗?
2、如何在工程中调用动态库,编译选项中有什么选项吗?还是只需要把.so拷贝到工程中?

因为我是vxWorks的新手,请高手指点一下
...全文
1540 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
三月里 2014-05-30
  • 打赏
  • 举报
回复
请问你用的vxworks自带的库是什么库啊??
blueice12 2014-02-11
  • 打赏
  • 举报
回复
看看这个是不是你想要的: http://tomlau-2000.blog.sohu.com/91032684.html
epadtimes 2014-01-28
  • 打赏
  • 举报
回复
你好,在vxworks下面如何编译 tinyxml?谢谢!能介绍一下具体的步骤吗?
rui0bit 2013-07-18
  • 打赏
  • 举报
回复
您好,我想问一下您是怎么在vxworks下实现tinyxml的,非常感谢。
wingwind_cn 2012-11-17
  • 打赏
  • 举报
回复
好像反了吧。在C++中调用C库,需要C库的头文件中,声明为extern "C"。这样编译器在寻找C函数时,不会误当做C++函数而自动加上后缀。
ljhnew 2012-11-16
  • 打赏
  • 举报
回复
vxworks下,动态加载一般建议编译成out库,用c的代码可以加载使用C++代码生成的out库。前提时,将C++封装正库提供的头文件中的API,要用extern "C"定义,即c的接口。用LoadModule加载库,用symFindByName来查询函数执行。 或者将模块编译成out或者pl库,在主工程中编译时,直接将该模块加入的macro的libs中,即可直接调用头文件的API了
guolisen 2012-10-19
  • 打赏
  • 举报
回复
不要用so,编译成downloadable可加载模块,用LoadModule加载,效果和用workbench下载一样
controstr 2012-10-12
  • 打赏
  • 举报
回复
使用makup会比较简单,最好用C不要用C++
saltyren 2012-10-04
  • 打赏
  • 举报
回复
自己解决了,改一些源文件,然后文件改成cpp再编译就行了
saltyren 2012-05-13
  • 打赏
  • 举报
回复
顶一下,没有老师了解吗?

2,179

社区成员

发帖
与我相关
我的任务
社区描述
xworks是美国 Wind River System 公司( 以下简称风河公司 ,即 WRS 公司)推出的一个实时操作系统。
社区管理员
  • VxWorks开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧