您的位置:首页 > 编程语言 > C语言/C++

【转】QT怎么调用C++的动态库

2012-04-24 19:22 169 查看
toolc:

准备用QT写一个界面,用界面读取文本数据,具体计算的方法用C++编好的动态库中的函数执行,最后把计算的结果显示在界面上,请问怎么调用?最好有代码或者例子说明。不胜感激

------------------------------------------

XChinux:

有没有头文件?有头文件的话,将头文件包含进来,然后在.pro中加上

LIBS += -L/your/lib/path -lyour_lib_name

就可以了。

也可以用QLibrary来加载。

------------------------------------------

zhy282289:

用QLibrary来加载了,实在不行你直接用C++里的加载方法不就行了

------------------------------------------

toolc:

好,谢谢,试试去

------------------------------------------

时代海豚:

编译和链接都通过了,运行时报错,请大虾看看这是怎么回事?

/home/lenovo/qtpro/dll_test-build-desktop/dll_test: error while loading shared libraries: libTax.so.1: cannot open shared object file: No such file or directory

qtcreator生成的动态链接库文件和软链接都在/home/lenovo/qtpro/Tax-build-desktop/里面,

dll_test的最后

unix:!macx:!symbian: LIBS += -L$$PWD/../Tax-build-desktop/ -lTax

INCLUDEPATH += $$PWD/../Tax-build-desktop

DEPENDPATH += $$PWD/../Tax-build-desktop

之前没有这一段,链接时报错,加上之后就变成上面提到的错误了

------------------------------------------

XChinux:

$export LD_LIBRARY_PATH=/your_shrared_lib_path:$LD_LIBRARY_PATH

$/home/lenovo/qtpro/dll_test-build-desktop/dll_test

明白了嘛?要将共享库的路径加入到LD_LIBRARY_PATH路径中去。

------------------------------------------

时代海豚:

谢谢版主,能调通了!

但是有个问题,ubuntu取消了LD_LIBRARY_PATH这个环境变量,我不知道该怎么给这个变量设置默认值,每次都手动export太麻烦了吧……

不知道版主对ubuntu熟不熟啊?

------------------------------------------

XChinux:

写shell脚本做辅助啊。

$vi dll_test.sh

引用

#!/bin/sh

exedir=`dirname $0`

export LD_LIBRARY_PATH=$exedir/lib:$LD_LIBRARY_PATH

cd $exedir

./dll_test $1

$chmod +x dll_test.sh

------------------------------------------

时代海豚:

^_^~~谢谢版主啦~~果然经验丰富啊~~

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: