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

4 篇文章 0 订阅

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

 

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

 

时代海豚:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值