日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

ubuntu18 + QT + 动态库创建和调用+Plain C++ Aplication

發布時間:2024/3/26 c/c++ 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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();

#ifndef MYLIB_H #define MYLIB_H#include <QtCore/qglobal.h>#if defined(MYLIB_LIBRARY) # define MYLIBSHARED_EXPORT Q_DECL_EXPORT #else # define MYLIBSHARED_EXPORT Q_DECL_IMPORT #endifclass MYLIBSHARED_EXPORT MyLib {public:MyLib();void Hello(); };#endif // MYLIB_H

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

#include <iostream> #include "mylib.h" using namespace std;int main() {MyLib lib;lib.Hello();return 0; }

到此編譯一下,生成可執行文件了,但是還不可以運行

//
三:運行
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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。