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

求大侠们帮忙:
为什么我在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 ,诚求朋友们交流,共同进步!

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

比如 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你的path

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

那个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值为自己常用目录值。