ubuntu18 + QT + 动态库创建和调用+Plain C++ Aplication
一:創(chuàng)建靜態(tài)庫
1)
一直下一步到結(jié)束
2)MyLib.pro不需要?jiǎng)幽J(rèn)就好
QT -= gui TARGET = MyLib TEMPLATE = lib DEFINES += MYLIB_LIBRARY DEFINES += QT_DEPRECATED_WARNINGS SOURCES += \mylib.cpp HEADERS += \mylib.h \mylib_global.h unix {target.path = /usr/libINSTALLS += target }3)將mylib_global.h文件內(nèi)容拷貝到mylib.h, 將mylib_global.h文件刪除
4)編寫mylib.h,mylib.cpp
mylib.h, 只是加了: void Hello();
mylib.cpp
#include "mylib.h" #include <iostream> using namespace std;MyLib::MyLib() { }void MyLib::Hello() {cout<<"Hello!"<<endl; }5)編譯生成.so文件
/
二:靜態(tài)庫libMyLib.so的使用
1) 新建Plain C++ Aplication工程
直接到完成
2) 調(diào)用dll
在工程目錄下創(chuàng)建lib文件夾,將已經(jīng)生成的libMyLib.so libMyLib.so.1 libMyLib.so.1 .0 libMyLib.so.1 .0.0拷貝到該文件價(jià)下
將MyLib.h文件拷貝到工程DllTest文件夾下,并且包含頭文件
導(dǎo)入dll, 工程右鍵添加外部庫,已經(jīng)復(fù)制在工程的lib文件夾了
編輯Dll.pro刪除CONFIG -= qt,否則會(huì)報(bào)如下錯(cuò)誤
error: ‘QtCore/qglobal.h’ file not found
原因:-號(hào)代表禁用, CONFIG -= qt會(huì)禁用關(guān)于QT的庫
編輯main.cpp
到此編譯一下,生成可執(zhí)行文件了,但是還不可以運(yùn)行
//
三:運(yùn)行
1)將libMyLib.so libMyLib.so.1 libMyLib.so.1 .0 libMyLib.so.1 .0.0拷貝到可執(zhí)行文件夾下
2)直接運(yùn)行會(huì)報(bào)錯(cuò):error while loading shared libraries: libMyLib.so.1: cannot open shared object file: No such file or directory
還需要在配置文件中配置Lib路徑,打開文件.bashrc文件添加lib所在文件路徑
注意:第一個(gè)lib是文件夾名,第二個(gè)是文件類型lib
$ export LD_LIBRARY_PATH=/home/whfml/AQTTest/DllTest/lib/lib:$LD_LIBRARY_PATH
運(yùn)行即可,你就會(huì)發(fā)現(xiàn)驚喜
總結(jié)
以上是生活随笔為你收集整理的ubuntu18 + QT + 动态库创建和调用+Plain C++ Aplication的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CPU卡电子钱包圈存消费调试记录
- 下一篇: SmartPTT、SmartICS 工业