Qt中Makefile檔案裡INCPATH和LIBS引數詳解
另外,大部分libxxxx.so只是一個連結,以RH9為例,比如 libm.so它連結到/lib/libm.so.x,/lib/libm.so.6又連結到/lib/libm-2.3.2.so,如果沒有這樣的鏈 接,還是會出錯,因為ld只會找libxxxx.so,所以如果你要用到xxxx庫,而只有libxxxx.so.x或者libxxxx-
x.x.x.so,做一個連結就可以了ln -s libxxxx-x.x.x.so libxxxx.so
手工來寫連結引數總是很麻煩的,還好很多庫開發包提供了生成連結引數的程式,名字一般叫xxxx-config,一般放在/usr/bin目錄下,比如gtk1.2的連結引數生成程式是gtk-config,執行
gtk-config --libs就能得到以下輸出
"-L/usr/lib -L/usr/X11R6/lib -lgtk -lgdk -rdynamic -lgmodule -lglib -ldl -lXi -lXext -lX11 -lm"
這就是編譯一個gtk1.2程式所需的gtk連結引數,xxx-config除了 --libs引數外還有一個引數是--cflags用來生成標頭檔案包含目錄的,也就是-I引數,在下面我們將會講到。你可以試試執行gtk-config --libs --cflags,看看輸出結果。現在的問題就是怎樣用這些輸出結果了,最笨的方法就是複製貼上或者照抄,聰明的辦法是在編譯命令列里加入這個`xxxx
-config --libs --cflags`,比如編譯一個gtk程式:gcc gtktest.c `gtk-config --libs --cflags`這樣就差不多了。注意`不是單引號,而是1鍵左邊那個鍵。
除了xxx-config以外,現在新的開發包一般都用pkg-config來生 成連結引數,使用方法跟xxx-config類似,但xxx-config是針對特定的開發包,但pkg-config包含很多開發包的連結引數的生成, 用pkg-config --list-all命令可以列出所支援的所有開發包,pkg-config的用法就是pkg-config
pagName --libs --cflags,其中pagName是包名,是pkg-config--list-all裡列出名單中的一個,比如gtk1.2的名字就是gtk+, pkg-config gtk+ --libs --cflags的作用跟gtk-config --libs --cflags是一樣的。比如:gcc gtktest.c `pkg-config gtk+ --libs --cflags`。
這段是抄的別人的, 先寫在這裡吧。
2 INCPATH中的-I 引數
-I引數是用來指定標頭檔案目錄,/usr/include目錄一般是不用指定的,gcc知道去那裡找,但 是如果標頭檔案不在/usr/include裡我們就要用-I引數指定了,比如標頭檔案放在/myinclude目錄裡,那編譯命令列就要加上- I/myinclude引數了,如果不加你會得到一個"xxxx.h: No such file or directory"的錯誤。-I引數可以用相對路徑,比如標頭檔案在當前目錄,可以用-I.來指定。上面我們提到的--cflags引數就是用來生成-I 引數的。
相關推薦
Qt中Makefile檔案裡INCPATH和LIBS引數詳解
1 LIBS中的-l 和 -L引數 -l 引數是用來指定程式要連線的庫, -l引數緊接著就是庫名, 庫名和真正的庫檔名的差別, 以數學庫為例, 其庫名為 m , 其 庫檔名為 libm.so,也就
Qt中開啟檔案對話方塊和儲存檔案對話方塊
主要是用QFileDialog的兩個靜態方法 1、開啟對話方塊 QString getOpenFileName(QWidget * parent = 0, const QString & caption = QString(), const QStr
java中的arraycopy(),copyOf()和copyOfRange()方法詳解
java語言提供了很多的方法來對陣列進行復制。其中我們常用的方法有三種,下面一一列舉出來 1. arraycopy()方法 函式原型:arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src: 原陣列
Android關於FTP檔案上傳和下載功能詳解
Android關於FTP檔案上傳和下載功能詳解 更新時間:2017年09月21日 11:41:14 作者:一諾的祕密花園 我要評論 這篇文章主要為大家詳細介紹了Android關於FTP檔案上傳和下載功能,具有一定的參考價值,感興趣
Python中的break、continue和pass的詳解
break 當在while或者for中使用break的時候break會跳出整個迴圈,也就是else裡面的語句也不會執行,將跳出整個迴圈 print('---------------break-------------') for x in 'huhailong': if
[Struts2] 配置檔案struts.xml和web.xml詳解
配置檔案struts.xml和web.xml。 其實要使Struts2可以工作,配置很簡單,套模板就好了。而且基本與版本無關。 如,只要struts2需要的基本jar包已經引入,那麼直接配置一下web.xml和struts.xml檔案。 web.xml中包含: <
touch事件中的touches、targetTouches和changedTouches(詳解)
touches: 當前螢幕上所有觸控點的列表; targetTouches: 當前物件上所有觸控點的列表; changedTouches: 涉及當前(引發)事件的觸控點的列表 通過一個例子來區分
關於AngularJs中$http post、get 傳送和接受引數詳解
1、POST、GET攜帶引數的寫法不一樣,如下: ? 1 2 3 4 5 6 7 $http({method: 'post', url: './feedback/ma
Android Drawable資源中selector、layer-list和shape標籤詳解
在實際開發中,我們經常會對控制元件的樣式進行一些修改已滿足我們的要求,這時候就會引用 Drawable 資源的樣式檔案。 1、StateListDrawable 資源 StateListDrawable 用於組織多個 Drawable 物件。當使用 Stat
Java中的Enumeration、Iterable和Iterator介面詳解
前言 在看各類Java書籍或者博文的時候,總是會遇到Enumeration、Iterable和Iterator這三個介面,如果對這幾個介面不是很明白的話,總會讓自己看著看著就迷惑了,正好這週末,抽空把這三個介面總結一下,一掃之前的各種迷惑。 Enumeration Enumeration(列舉)介面的作用和I
mencoder和ffmpeg引數詳解2 (轉)
有很多軟體能夠擷取影片影象、合併影象,但如果影片太多,比如視訊網站為使用者上傳的影象生成預覽圖之類的,人工在gui方式下操作就不可取了,我們需要在命令列方式下來擷取、合併。 首先,擷取影片影象使用最多的就是mplayer或者ffmpeg,我用mplayer比較熟,本文就以此為例了,ffmpe
U_boot 的 bootcmd 和bootargs引數詳解
U-boot的環境變數值得注意的有兩個: bootcmd 和bootargs。 bootcmd 前面有說過bootcmd是自動啟動時預設執行的一些命令,因此你可以在當前環境中定義各種不同配置,不同環境的引數設定,然後設定bootcmd為你經常使用的那種引數。
MultiByteToWideChar和WideCharToMultiByte引數詳解及使用方法
轉自:https://www.cnblogs.com/ziwuge/archive/2011/11/05/2236968.html https://www.cnblogs.com/gakusei/articles/1585211.html 簡單整理,未驗證,不對結果負責 函式原型: in
tomcat裡的server.xml引數詳解
記錄下tomcat裡的server.xml引數含義 <Environment name="simpleValue" type="java.lang.Integer" value="30"/> <Resourc
Linux核心調整和核心引數詳解
SYN COOKIE原理和Linux核心中的實現 http://www.ibm.com/developerworks/cn/linux/l-syncookie/?ca=dwcn-newsletter-linux Linux系統下的DDOS攻擊防範 http://hi.baidu.com/mo
xmlHttp的readyState 和 status引數詳解
AJAX中有檢查狀態碼的, xmlHttp.onreadystatechange=handleStateChange; function handleStateChange() { if(xmlHttp.readyState==4)
PostgreSQL資料庫配置檔案之postgresql.conf全部引數詳解
1 概述 所有的引數的名稱都是不區分大小寫的。每個引數的取值是布林型、整型、浮點型和字串型這四種類型中的一個,分別用boolean、integer、floating point和string表示。布林型的值可以寫成ON、OFF、 TRUE、 FALSE、 YES、 NO、
Tomcat處理請求過程和重要引數詳解
Tomcat處理使用者連線請求模式 BIO:阻塞模型 NIO:非阻塞模型 APR:高效能,可擴充套件的模式,Tomcat8版本預設模式 在使用tomcat時,經常會遇到連線數、執行緒數之類的配置問題,要真正理解這些概念,必須先了解Tomcat的聯結器(Connector)。在
qt中獲取檔案路徑和檔名、字尾名
QString file_full, file_name, file_path,file_suffix ; QFileInfo fileinfo; file_full = QFileDialog::getOpenFileName(this,.....); fileinfo =
IC驗證中Makefile檔案
#!/bin/sh RTL_PATH=-f ../../rtl/rtl.fl TB_PATH=../../verif VERB=UVM_DEBUG SEED=$(shell date +%s) TEST= N=0 OUT_DIR=./logs TEST_ID +=${TEST}_${N} VPD=