ubuntu18 + QT + 动态库创建和调用+Plain C++ Aplication
一:創建靜態庫
1)
一直下一步到結束
2)MyLib.pro不需要動默認就好
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文件內容拷貝到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文件
/
二:靜態庫libMyLib.so的使用
1) 新建Plain C++ Aplication工程
直接到完成
2) 調用dll
在工程目錄下創建lib文件夾,將已經生成的libMyLib.so libMyLib.so.1 libMyLib.so.1 .0 libMyLib.so.1 .0.0拷貝到該文件價下
將MyLib.h文件拷貝到工程DllTest文件夾下,并且包含頭文件
導入dll, 工程右鍵添加外部庫,已經復制在工程的lib文件夾了
編輯Dll.pro刪除CONFIG -= qt,否則會報如下錯誤
error: ‘QtCore/qglobal.h’ file not found
原因:-號代表禁用, CONFIG -= qt會禁用關于QT的庫
編輯main.cpp
到此編譯一下,生成可執行文件了,但是還不可以運行
//
三:運行
1)將libMyLib.so libMyLib.so.1 libMyLib.so.1 .0 libMyLib.so.1 .0.0拷貝到可執行文件夾下
2)直接運行會報錯:error while loading shared libraries: libMyLib.so.1: cannot open shared object file: No such file or directory
還需要在配置文件中配置Lib路徑,打開文件.bashrc文件添加lib所在文件路徑
注意:第一個lib是文件夾名,第二個是文件類型lib
$ export LD_LIBRARY_PATH=/home/whfml/AQTTest/DllTest/lib/lib:$LD_LIBRARY_PATH
運行即可,你就會發現驚喜
總結
以上是生活随笔為你收集整理的ubuntu18 + QT + 动态库创建和调用+Plain C++ Aplication的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CPU卡电子钱包圈存消费调试记录
- 下一篇: SmartPTT、SmartICS 工业