1. 程式人生 > >QT .pro檔案 LIBS用法詳解

QT .pro檔案 LIBS用法詳解

在程式中需要使用到團隊其它成員開發的靜態庫和動態庫,起初是知道使用LIBS變數在在.pro檔案中指定需要包含的庫,但是實際使用的時候卻遇到很大麻煩,但其實確實是因為自己看官方文件不太用心造成的。

 下面是官方文件對於LIBS變數的使用說明:

這段話對於LIBS的使用說的很清楚了,就是-L指定庫的目錄,而-l指定庫的名字(如果是在Linux下,則去掉lib和字尾名,windows下去掉字尾名即可),靜態庫、動態庫都是一樣的。但是它沒說的是,如果使用相對路徑,而庫又想要被程式找的到,那麼這個相對路徑指的是執行程式生成的位置於庫的相對路徑,因為QT編譯時會把生成路徑放在和專案相同目錄下的另一個資料夾中,那麼也就是說,我們必須把庫拷貝到編譯生成的目錄下才行(這裡解釋一下,可能是受VC的影響,VC中編譯生成目錄預設是在專案根目錄下的,所以養成了習慣,誤以為在Qt中也是把庫放在根目錄下就可以了,其實這是錯的)。

如果不想把庫拷貝到編譯輸出目錄,那麼也可以指定絕對路徑。下面是兩種方式的對比:

1、相對路徑:

需要將庫拷貝到與生成應用程式相對路徑的目錄下才行

在window下使用qmake“翻譯”過生成的makefile檔案中的路徑為:

可以看到用線圈起來的地方,就是GCC標準的引數,指定了庫的位置。

2、絕對路徑:

使用紅線圈起來的地方就是絕對路徑,在window下,qmake“翻譯”過生成的makefile檔案中指定了庫的檔案,顯然是絕對路徑。

3、自動生成.pro

除了手動設定庫檔案的位置,還可以使用匯入的方式,讓QtCreator自動生成匯入庫檔案的方式。步驟如下:

在工程檔案上右鍵選擇新增庫,到下一步,選擇External library。

然後按照指示,指定庫的位置即可。然後QtCreator會自動生成具有絕對路徑的庫檔案指定語句。

4、總結

最後,庫的寫法與標頭檔案的包含類似,也可以使用反斜線將其放在不同行對齊,如果許多庫屬於同一個目錄,那麼只要在最前面用-L指定目錄,後面所有的庫用空格分開就行了。如下面的寫法:

網址:http://www.cnblogs.com/lit10050528/p/3936203.html

相關推薦

QT .pro檔案 LIBS用法

在程式中需要使用到團隊其它成員開發的靜態庫和動態庫,起初是知道使用LIBS變數在在.pro檔案中指定需要包含的庫,但是實際使用的時候卻遇到很大麻煩,但其實確實是因為自己看官方文件不太用心造成的。  下面是官方文件對於LIBS變數的使用說明: 這段話對於LIBS的使

C++通過jsoncpp類庫讀寫JSON檔案-json用法

介紹: JSON 是常用的資料的一種格式,各個語言或多或少都會用的JSON格式。 JSON是一個輕量級的資料定義格式,比起XML易學易用,而擴充套件功能不比XML差多少,用之進行資料交換是一個很好的選擇。JSON的全稱為:JavaScript Object Notation ,顧名思義,JSON是用於標記

Qt中Makefile檔案裡INCPATH和LIBS引數

1 LIBS中的-l 和 -L引數   -l 引數是用來指定程式要連線的庫, -l引數緊接著就是庫名, 庫名和真正的庫檔名的差別, 以數學庫為例, 其庫名為 m , 其 庫檔名為 libm.so,也就

Tag檔案和Tag標記的用法

                                      Tag檔案和Tag標記

Xshell拖拽檔案到linux(rz和sz命令用法

在linux中rz 和 sz 命令允許開發板與主機通過串列埠進行傳遞檔案了,下面我們就來簡單的介紹一下rz 和 sz 命令的例子。 rz,sz是Linux/Unix同Windows進行ZModem檔案傳輸的命令列工具。 優點就是不用再開一個sftp工具登入上去上傳下

c++輸出檔案流ofstream用法

目錄 標頭檔案 <fstream>包含的多個檔案流類,這裡列出常用的4個: ifstream Input file stream class (class )連結 of

Qt: 調色盤QPalette類用法(附例項、原始碼)

在實際的應用中,經常需要對某個控制元件的顏色外觀,如背景、前景色等,進行設定。Qt中提供的調色盤QPalette類就是專門用於管理控制元件的外觀顯示。QPalette類相當於對話方塊或控制元件的調色盤,管理著控制元件和窗體的所有顏色。每個窗體和控制元件都包含一個QPale

dos命令之 type (顯示檔案內容)用法

在windows命令提示符下輸入 help type 命令回車後,看到如下幫助資訊: 顯示文字檔案的內容。 TYPE [drive:][path]filename 本以為這麼簡單個命令不用寫文件記錄了

sudo配置檔案/etc/sudoers及實戰用法

一、sudo執行命令的流程 將當前使用者切換到超級使用者下,或切換到指定的使用者下, 然後以超級使用者或其指定切換到的使用者身份執行命令,執行完成後,直接退回到當前使用者。 具體工作過程如下: 當用戶執行sudo時,系統會主動尋找/etc/sudoers檔案,判斷該使用者是否

SVN之Cornerstone用法 與解決上傳.a檔案用法

1.在Launchpad中選擇Conerstone檔案    (圖1) 2.出現如下檢視  (圖2) 3.在伺服器目錄區域,點選“+”,新增HTTP Server。  (圖3) 4.選中所新

JavaScript中return的用法

style 返回 www log tle blog 意思 charset fun 1、定義:return 從字面上的看就是返回,官方定義return語句將終止當前函數並返回當前函數的值,可以看下下面的示例代碼: <!DOCTYPE html><html l

SVN trunk(主線) branch(分支) tag(標記) 用法和詳細操作步驟

trac load mar span 必須 最可 objc copy 右鍵 原文地址:http://blog.csdn.net/vbirdbest/article/details/51122637 使用場景: 假如你的項目(這裏指的是手機客戶端項目)的某個版本(例如1.0

js 定時器用法——setTimeout()、setInterval()、clearTimeout()、clearInterval()

ntb 幫助 .get tint num 用法 -c 函數 tel 在js應用中,定時器的作用就是可以設定當到達一個時間來執行一個函數,或者每隔幾秒重復執行某段函數。這裏面涉及到了三個函數方法:setInterval()、setTimeout()、clearI

selenium用法

key url enc element api code 需要 int question selenium用法詳解 selenium主要是用來做自動化測試,支持多種瀏覽器,爬蟲中主要用來解決JavaScript渲染問題。 模擬瀏覽器進行網頁加載,當requests,url

C# ListView用法

ont 結束 server 發生 匹配 鼠標 之前 小圖標 order 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有意義

linux cp命令參數及用法---linux 復制文件命令cp

linux file linux cp命令參數及用法詳解---linux 復制文件命令cp [root@Linux ~]# cp [-adfilprsu] 來源檔(source) 目的檔(destination)[root@linux

Python數據類型方法簡介一————字符串的用法

python 字符串連接 字符串用法 符串是Python中的重要的數據類型之一,並且字符串是不可修改的。 字符串就是引號(單、雙和三引號)之間的字符集合。(字符串必須在引號之內,引號必須成對)註:單、雙和三引號在使用上並無太大的區別; 引號之間可以采取交叉使用的方式避免過多轉義;

C# ListView用法(轉)

分組 創建 cti 排列 checkbox 定義 com 程序 erl 一、ListView類 1、常用的基本屬性: (1)FullRowSelect:設置是否行選擇模式。(默認為false) 提示:只有在Details視圖該屬性才有

java中的instanceof用法

定義 xtend print 繼承 interface 參數 保留 如果 ack   instanceof是Java的一個二元操作符(運算符),也是Java的保留關鍵字。它的作用是判斷其左邊對象是否為其右邊類的實例,返回的是boolean類型的數據。用它來判斷某個對象是否是

@RequestMapping 用法

同時 get() turn example track find 說明 tex -h 簡介: @RequestMapping RequestMapping是一個用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的所有響應請求的方法都是以該地址作為父路徑。