QT中載入動態鏈結庫

2022-09-01 14:12:13 字數 2115 閱讀 7382

一.新增第三方的標頭檔案

這個問題再簡單不過了,不過我還是要說下。

首先,新增標頭檔案  #include "controlcan.h"

然後,再將這個標頭檔案放到工程的目錄下,就ok了,非常的簡單

二.新增.lib檔案

首先,將.lib檔案放到對應的工程目錄下(當然,放到其他路徑也可以)。

但是,僅僅做這一步是不行的,工程不會主動去包含這個.lib檔案,你必須告訴他,lib檔案在**,才可以。

然後,在qt的工程中,你會看到乙個.pro檔案,比如,我的工程名為test_qt,那麼我的檔案就是test_qt.pro檔案,在整 個qt介面的左上角,.pro檔案是管理整個工程的,當要開啟乙個工程的時候,只要開啟.pro,就可以開啟整個工 程的所有東西。

所以,我們要做的,就是在.pro檔案中,加上一句話,告訴工程,.lib在**

libs += -le:/project/qt/usbcan_info/ -lcontrolcan

下面對這句話進行解析:

1)+=這個符號是連線在一起的,不要自做聰明,給分開了,寫成+ = ,這樣就是錯的!

2)+=的左右兩邊可以有空格,也可以沒有空格,隨意的

3)-l之後緊接著就跟著.lib檔案所在的目錄,比如,我的目錄是在e盤下的project目錄下的qt目錄下的usbcan_info下,注意,是緊跟著,不要分開,分開就錯啦!

4)-l後面跟著的是.lib的檔名,注意,比如你的.lib檔案時controlcan.lib,不要傻乎乎的寫成了-lcontrolcan.lib,不要帶字尾,要寫成-lcontrolcan,同樣,-l後面也沒有空格

完成以上的操作,就可以指定.lib檔案了。其實說穿了很簡單,就是把.lib隨便放到乙個目錄下,然後告訴工程,你的.lib放到**了,叫什麼名字。

三.新增.dll檔案

乙個工程編譯成功後,會在工程目錄下生成2個目錄,乙個是debug目錄,乙個是release目錄(注意,如果乙個工程剛剛新建,是沒有這2二個目錄的,不信的朋友可以看看)。

其中,debug就叫做輸出目錄!因為工程編譯後的.exe就在這個目錄下。

然後,將.dll檔案放到這個目錄下。

一.新增第三方的標頭檔案

這個問題再簡單不過了,不過我還是要說下。

首先,新增標頭檔案  #include "controlcan.h"

然後,再將這個標頭檔案放到工程的目錄下,就ok了,非常的簡單

二.新增.lib檔案

首先,將.lib檔案放到對應的工程目錄下(當然,放到其他路徑也可以)。

但是,僅僅做這一步是不行的,工程不會主動去包含這個.lib檔案,你必須告訴他,lib檔案在**,才可以。

然後,在qt的工程中,你會看到乙個.pro檔案,比如,我的工程名為test_qt,那麼我的檔案就是test_qt.pro檔案,在整 個qt介面的左上角,.pro檔案是管理整個工程的,當要開啟乙個工程的時候,只要開啟.pro,就可以開啟整個工 程的所有東西。

所以,我們要做的,就是在.pro檔案中,加上一句話,告訴工程,.lib在**

libs += -le:/project/qt/usbcan_info/ -lcontrolcan

下面對這句話進行解析:

1)+=這個符號是連線在一起的,不要自做聰明,給分開了,寫成+ = ,這樣就是錯的!

2)+=的左右兩邊可以有空格,也可以沒有空格,隨意的

3)-l之後緊接著就跟著.lib檔案所在的目錄,比如,我的目錄是在e盤下的project目錄下的qt目錄下的usbcan_info下,注意,是緊跟著,不要分開,分開就錯啦!

4)-l後面跟著的是.lib的檔名,注意,比如你的.lib檔案時controlcan.lib,不要傻乎乎的寫成了-lcontrolcan.lib,不要帶字尾,要寫成-lcontrolcan,同樣,-l後面也沒有空格

完成以上的操作,就可以指定.lib檔案了。其實說穿了很簡單,就是把.lib隨便放到乙個目錄下,然後告訴工程,你的.lib放到**了,叫什麼名字。

三.新增.dll檔案

乙個工程編譯成功後,會在工程目錄下生成2個目錄,乙個是debug目錄,乙個是release目錄(注意,如果乙個工程剛剛新建,是沒有這2二個目錄的,不信的朋友可以看看)。

其中,debug就叫做輸出目錄!因為工程編譯後的.exe就在這個目錄下。

然後,將.dll檔案放到這個目錄下。

linux 動態鏈結庫載入

linux 動態鏈結 linux 中的應用程式以以下兩種方式之一鏈結到外部函式 要麼在構建時與靜態庫 lib a 靜態地鏈結,並且將庫 包含在該應用程式的可執行檔案裡 要麼在執行時與共享庫 lib so 動態地鏈結。通過動態鏈結裝入器,將動態庫對映進應用程式的可執行記憶體中。在啟動應用程式之前,動態...

動態鏈結庫延遲載入

開發的時候遇到乙個問題,有乙個可執行程式需要依賴另外乙個目錄的動態庫,但是對這個dll介面的引用採用的是靜態依賴的方式。解決不難,可以通過loadlibrary動態載入,然後呼叫其介面。但是這用就沒法方便的通過靜態以依賴的方式方便的呼叫其介面了。探索後發現vs支援延遲繫結。就是呼叫的時候可以通過靜態...

手動載入動態鏈結庫

手動載入動態鏈結庫常用於外掛程式式架構開發 dlfcn.h標頭檔案提供了api 以下我們給出常用的4個函式 open the shared object file and map it in return a handle that can be passed to dlsym to get sym...