在.pro文件里添加:
LIBS
+=
-L
/etc/
-l*
在.cpp引用的时候,还需要把相关的
头文件
包含进去
相信很多人有这样的需求吧 推荐使用 Qt Creator 2.1 以上版本,因为自带了 Class View ,不需要第三方的插件就可以看Symbol了。新建项目里,选择 Other Project 然后是 Import Existing Project,建立项目后添加文件,最后需要的是自己写一个 Makefile, 而且默认的 Build 目标是 all,注意 GNU make 的文件格式,命令行开头需要一个完整的 TAB 针对最简单的单文件,比如 main.cpp ,makefile 可以这样写 all: g++ -o main main.cpp 然后就可以了。
如果你自己添加的第三方库也可以提供自动补全功能,但是需要能搜索到这个库目录,我用的是 Mingw ,直接把第三方库放到 Mingw 对应的 include 和 lib 目录了,引用头文件之后自动补全很好很强大。应该也有环境变量来设置的,不过暂时不大清楚如何 *** 作。 工具->选项->项目和解决方案 之后窗口右上方 “显示以下文件的目录” 默认是可执行文件
把它修改成“库文件” 就可以添加了。
先写好实现动态链接库的libmy.cpp文件和libmy.h文件,如下:
// libmy.cpp
#include"libmy.h"
#include<iostream>
using namespace std
MyLib::MyLib()
{
}
MyLib::~MyLib()
{
}
void MyLib::hello()
{
cout <<"hello world~!" <<endl
}
// libmy.h文件
#ifndef LIBMY_H
#define LIBMY_H
class MyLib
{
public:
MyLib()
~MyLib()
void hello()
}
#endif /*LIBMY_H*/
然后写好pro文件,如下:
TEMPLATE = lib
TARGET =DllTest
HEADERS += libmy.h
SOURCES += libmy.cpp
保存关闭,文件名命名为MyDll.pro
在Shell里执行qmake MyDll.pro,在没有错误的情况下,然后执行make ,可以看到生成了几个后缀名为so的文件,如下图:
证明生成动态链接库成功。然后编写测试动态链接库的主函数,如下:
#include"libmy.h"
#include<iostream>
using namespace std
int main(int argc,char *argv[])
{
MyLib *lib = new MyLib() // 调用刚才编写的动态链接库
lib->hello()
cout <<"danshiming " <<endl
int i
cin >>i
return 1
}
编写main.pro文件,如下:
LIBS += -L ./ # 设置程序查找动态库的目录为当前目录
# 注意:用QT生成的动态库默认都加了lib前缀和扩展名及版本名,但调用时不用加lib,不用加文件
# 扩展名so、不用加版本名1.0.0.即下面LIBS中的DllTest就是实际的动态库libDllTest.so.1.0.0
LIBS+=-lDllTest #注意:调用时不用加lib,不用加文件扩展名so、不用加版本名1.0.0,记得前面加l(字母)
TARGET = libMyTest
SOURCES += main.cpp
执行qmake main.pro生成makefile文件,然后执行make,可以看到生成了libMyTest可执行文件。
将动态链接库libDllTest.so.1.0.0和可执行文件传到arm板上,如下:
在arm板上执行libMyTest,如下:
# chmod +x libMyTest // 先赋予可执行权限
执行:
# ./libMyTest
输出如下:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)