大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。

大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

帖子laojiudian » 周三 11月 23, 2011 9:31 pm

求大侠们帮忙:
为什么我在win xp环境下的QNX 6.5IDE下建立GENERAL application project ,然后由于需要调用共享库(xx.so文件)中的接口函数,于是我通过工程-》属性-》LINK中选择extra object files将.so添加进来后,编译没报错,但运行时却说ldd: fatal:could not load library xx.so文件(此时通过以太网口连接了Target system).

然后,我又在QNX 6.5IDE下建立shared library project ,然后通过工程-》属性-》LINK中选择extra object files将.so添加进来后,编译没报错,但运行时却说ldd: fatal:could not find xx/xx/xx.so文件(此时通过以太网口连接了Target system),于是我通过IDE提供的目标系统文件系统管理工具,将库文件拷贝到提示的目录下,程序可以运行。
但修改源代码后,执行的结果却没有改变,不管怎么修改源程序,都没变。

目标系统下通过命令行调用qcc 命令编译源程序是可以正常执行源程序的功能的,即修改代码,输出结果也会按预期的变。

求大侠们指点指点,小弟刚入手QNX ,诚求朋友们交流,共同进步!
laojiudian
New Member
 
帖子: 7
注册: 周三 11月 23, 2011 8:49 pm

Re: 大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

帖子机器人 » 周四 11月 24, 2011 12:11 pm

你得把你的路径 添加到系统环境路径

比如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的path
机器人
Senior Member
 
帖子: 106
注册: 周二 4月 27, 2010 12:09 pm
地址: 中国

Re: 大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

帖子laojiudian » 周四 11月 24, 2011 9:05 pm

机器人 写道:你得把你的路径 添加到系统环境路径

比如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的path


您好,首先感谢指导。
但我还有一点疑问:
按照您的方式修改路径后,是不是也只是解决我需要手动拷贝库文件至LD_LIBRARY_PATH指定目录下的这个问题。
后面的那个问题,即我在IDE下修改源代码,为什么直接在IDE下RUN的结果完全没变?而在目标机下利用QCC编译却能改变程序的输出??
laojiudian
New Member
 
帖子: 7
注册: 周三 11月 23, 2011 8:49 pm

Re: 大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

帖子xtang » 周四 11月 24, 2011 9:19 pm

那个xx.so是你自己的.so,不是系统标准的。或者说,目标系统上没有这个.so,它只存在于你的XP上。

你的目标程序,在IDE 里 Debug 时,IDE会自动把你的目标程序下载到目标机上,执行,并让你的XP上的IDE可以远程调试它。唯一的问题是,你的目标系统上没有 xx.so,所以会报错。

一种解决办法,是把xx.so上传到目标系统,存放在一个可以找到的目录下(LD_LIBRARY_PATH指定的目录下)。

另一种办法,是在IDE上为目标程序建立 Debug Configurations 时,选择C/C++ QNX QConn,然后在 Upload 下可以指定同时需要上传的 .so
xtang
Moderator
 
帖子: 1815
注册: 周五 9月 12, 2003 4:14 am
地址: China

Re: 大侠们,有没有在IDE下添加共享数据库(.so文件)的方法?

帖子laojiudian » 周二 11月 29, 2011 5:16 pm

xtang 写道:那个xx.so是你自己的.so,不是系统标准的。或者说,目标系统上没有这个.so,它只存在于你的XP上。

你的目标程序,在IDE 里 Debug 时,IDE会自动把你的目标程序下载到目标机上,执行,并让你的XP上的IDE可以远程调试它。唯一的问题是,你的目标系统上没有 xx.so,所以会报错。

一种解决办法,是把xx.so上传到目标系统,存放在一个可以找到的目录下(LD_LIBRARY_PATH指定的目录下)。

另一种办法,是在IDE上为目标程序建立 Debug Configurations 时,选择C/C++ QNX QConn,然后在 Upload 下可以指定同时需要上传的 .so



谢谢xtang, 问题已经解决。确实是要存到(LD_LIBRARY_PATH指定的目录下),或者是系统库目录./lib或者./lib/dll下。可以修改LD_LIBRARY_PATH值为自己常用目录值。
laojiudian
New Member
 
帖子: 7
注册: 周三 11月 23, 2011 8:49 pm


回到 四海同心QNX论坛

在线用户

正在浏览此版面的用户:Google [Bot] 和 2 位游客

cron