昨天弄了好久才把dll调用的部分弄出来,感觉不错。以前也碰到过这类情况,就是C++调用Matlab的dll,不过那时候弄了好几个月,差点就放弃。好了,废话不说,开始正题!
1.Qt隐式调用Dll
1)我们建立一个控制台项目,起名为add
2)删去main.cpp,加入两个文件 : add.h add.cpp
3)两个文件的代码如下:
//add.h
#define ADD_H
int add(int a, int b);
#endif // ADD_H
{
return a+b;
}
5)进行构建,在debug目录下会生成 add.dll 和libadd.a文件,后面会用到。 其中.a是静态链接库,相当于windows上的lib文件。.so是动态连接库,相当于windows上的dll文件。
--------------------------------------------------------------------------------------------------------------------------------------------------------------
6)我们这里再建立一个新的工程adduse,这个是调用的部分。
7)将add工程中的add.h添加到这个工程中
8)在main.cpp中写入:
#include <QApplication>#include <qdebug.h>#include "add.h"int main(int argc, char *argv[]){QApplication a(argc, argv);qDebug() << add(12,3);return a.exec();}9).pro文件中加入 LIBS += -L. -ladd-L 参数指定 .lib/.a 文件的位置 -l 参数指定导入库文件名(不要加扩展名) 另外,导入库文件的路径中,反斜杠用的是向右倾斜的 ‘/’
10)最重要的一步是:将add工程中生成的libadd.a 拷到和main.cpp一个目录下面,add.dll拷到build-adduse-Desktop_Qt_5_2_0_MinGW_32bit-Debug这个目录下就好了11)运行工程,Enjoy!