導航:首頁 > 源碼編譯 > glib靜態編譯

glib靜態編譯

發布時間:2023-01-26 22:54:15

Ⅰ ubuntu下怎麼配置libdbus-glib環境, 能是下面程序編譯通過 麻煩大哥們手把手教行嗎急……急……

apt-get build-dep dbus

Ⅱ qt怎麼自動選擇配置的define參數

當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看

-release
這個參數顯而易見,就是編譯Qt以發布版的模式進行,一般來說,最後系統完成後,庫就應該是發布版。
-release
與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。
-debug-and-release
囧,上面那兩個的兒子。
-developer-build
囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。
-opensource
-commercial
這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。
-shared
-static
這兩個參數是指Qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。
-no-fast
-fast
這兩個就很有關系,如果對自己的電腦性能很有信心,那就選第一個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。
-no-largefile
-largefile
顧名思義,支不支持大文件,一般來說,嵌入式里是不會有從超過4G的大文件的,那就選第一個吧。
-no-exceptions
-exceptions
計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。
-no-accessibility
-accessibility
可訪問性的支持,說實話,這個我真不知道有什麼有用了。等哪天發現了,再來好好解釋。
-no-stl
-stl
是都加入stl的支持,stl,這應該算是C++程序員應該都了解了,再不濟,那也總聽說過大名吧。
no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>
這 個可要好好說明下,一般來說,對於一個優秀的項目開發,資料庫是必不可少的,qt也自帶了大多數資料庫驅動,可以完美地支持資料庫的使用。對於數 據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。一般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的 需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱 可以自己查看參數里,有詳細地介紹。
-system-sqlite
sqlite真受歡迎啊,當然那麼優秀的嵌入式資料庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite資料庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。
-no-qt3support
-qt3support
這個也是簡潔易懂,加不加對qt3的支持。
no-xmlpatterns
-xmlpatterns
選擇對xml的支持,如果對網路無需求的話,就不用加了。
-no-phonon
-phonon
phonon是qt中處理多媒體的模塊,比如放放視頻什麼來著,不過本人從沒用過,也是根據需要選擇的。
-no-phonon-backend
-phonon-backend
與上面類似,只不過這兩是以插件的形式加入支持。
-no-svg
-svg
是否加入svg的支持,svg即可縮放矢量圖形。
-no-webkit
-webkit
是否加入webkit的支持,這可是個好東西,不過如果跟網路不搭界的話,還是不支持吧。
-no-scripttools
-scripttools
是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。
-platform target
目標平台,這可是關鍵了,如果不注意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫你移植到開發板上。通常,本人是linux-arm-g++。
-no-mmx
-no-3dnow
-no-sse
-no-sse2
這四個參數是針對CPU的指令集,老實說,我也不甚了解,不過,對於開發並不是影響很大。
-qtnamespace
把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。
-qtlibinfix
將所有的qt的.so庫重命名,也沒啥大用處。
-no-sql-<driver>
-qt-sql-<driver>
-plugin-sql-<driver>
-system-sqlite
這是相當明顯的,如果這都看不出來,,囧,那您一定比我近視(本人800度近視。。)
就 是說如果是-no-XX-,就說明編譯時不選擇這個參數,如過是-qt-XX-,說明我們可以編譯直接選用qt自帶的驅動,如果是 -plugin-XX-,就是將驅動以插件形式編譯,而-system-XXX,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要 用第三方的API,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。
接下來,我們接著研究配置參數。
-qt-zlib
-system-zlib
想 必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來 說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因為圖形圖像的壓縮都要使用或涉及到這個庫。
-no-gif
-qt-gif
這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是Graphics Interchange Format。
-no-libtiff
-qt-libtiff
-system-libtiff
tiff是一種非常復雜的光柵圖像格式,並且有直接現成的C語言實現庫,因此選擇參數時就有了qt和system,一般來說,科學相關的開發里可能會用到。
-no-libpng
-qt-libpng
-system-libpng
png的相關參數,一種非失真性壓縮點陣圖圖形文件格式,其實就是為了替代gif搞出來的,也是隨實際需要來選擇,當然,也有C語言實現的庫。
-no-libmng
-qt-libmng
-system-libmng
大汗,大汗,這可是超級罕見的東西,QT竟然也能支持,說實話,這個參數我看來就是無視的。MNG是多幀PNG動畫格式,結構極其復雜,基本沒人用。
-no-libjpeg
-qt-libjpeg
-system-libjpeg
jpeg,這么有名的圖片格式也不用說了,隨需要選擇吧。
-no-openssl
-openssl
-openssl-linked
SSL,Security Socket Layer,是一個安全傳輸協議,在Internet網上進行數據保護和身份確認,而OpenSSL是一個開放源代碼的實現了SSL及相關加密技術的軟體 包,在qt中,我們可以選擇直接支持,或者OpenSSL鏈接支持,這個參數也是為有需要者提供的。
以上是第三方庫的參數選擇,緊接著就是qt附加參數,在附加參數里,我們可以指定編譯的部分及加入參數來獲取信息。
-make
-nomake
一 句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些里你可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的 選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有著積極意義。
-R <string>
-l <string>
這兩個參數是為編譯時增加一個庫的運行路徑及頭文件的路徑,比如使用tslib作為開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。
-no-rpath
-rpath
這個參數比較難於理解,簡單地說,就是告訴動態載入器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -R/home/xxxx。
-continue
這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。
-verbose, -v
這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每一步的具體信息。
-no-optimized-qmake
-optimized-qmake
是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。
-no-nis
-nis
是否編譯NIS支持,NIS(網路信息服務)是一個提供目錄服務的RPC(遠程過程調用)應用服務,當然沒網路需要的可以再次華麗地無視。
-no-cups
-cups
是 否編譯CUPS支持,是不是想問什麼用啊?~~~~囧,開列印店用的。好了,不說冷笑話,CUPS給Unix/Linux用戶提供了一種可靠有效 的方法來管理列印。它支持IPP,並提供了LPD,SMB(服務消息塊,如配置為微軟WINDOWS的列印機)、JetDirect等介面。CUPS還可 以瀏覽網路列印機。它的開發提供者是大名鼎鼎的「水果生產商」----蘋果公司。
-no-iconv
-iconv
選擇是否編譯iconv支持,iconv是一個計算機程序以及一套應用程序編程介面的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言Qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。
-no-pch
-pch
是 否支持預編譯過的頭文件。預編譯頭就是把一個工程中的一部分代碼,預先編譯好放在一個文件里(通常以.pch為擴展名),這個文件就稱為預編譯頭 文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不 懂就加上。。。
no-dbus
-dbus
-dbus-linked
是否編譯編譯QtDBus模塊。dbus是freedesktop下開源的Linux IPC通信機制,本身Linux 的IPC通信機制包括,管道(fifo),共享內存,信號量,消息隊列,Socket等。在Qt中DBUS是有單獨的模塊的,可見其重要性。

-rece-relocations 對於額外的庫鏈接器優化,可以減少編譯中的再定位。
no-separate-debug-info
-separate-debug-info
是否存儲debug信息在.debug,一般為了查錯,還是選擇存儲吧。
-xplatform target
相當淺顯的參數,即交叉編譯的目標平台,一般來說根據你所要移植的目標板來確定。
-no-feature-<feature>
-feature-<feature>
選 取qte的feature編譯,對於這個,我理解為特性,特性的描述你可以參考src/corelib/global/qfeatures.txt,在這 裡面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大為qte庫瘦身。
-embedded <arch>
嵌入式平台架構選擇,可以選擇arm,mips,x86及generic,視你的目標平台決定吧。
-armfpa
-no-armfpa
這個參數也只是針對ARM平台的,是否加入對於基於ARM的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。
-little-endian
-big-endian
目標平台的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了
-host-little-endian
-host-big-endia
主機平台的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。
-no-freetype
-qt-freetype
-system-freetype
選擇freetype,FreeType庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的介面來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人一般使用文泉驛字體。
-qconfig local
使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控制項級別的參數。
-depths <list>
顯示的像素位深,也是根據需要來進行吧。
-qt-decoration-<style>
-plugin-decoration-<style>
-no-decoration-<style>
這個是選擇qt的樣式風格,對於需要美化界面的項目來說,可以好好選擇下。
-no-opengl
-opengl <api>
是否加入opengl的支持,OpenGL是個專業的3D程序介面,是一個功能強大,調用方便的底層3D圖形庫。不過對於一般的開發來說,似乎有很少用到的地方。
-qt-gfx-<driver>
-plugin-gfx-<driver>
-no-gfx-<driver>
這個是相當重要的一個參數,選擇QtGui的圖形顯示驅動,比如我們在pc上使用qvfb模擬時,就應該加入對qfvb的支持。我們可以在 linuxfb,transformed,qvfb,vnc,multiscreen這幾個中選擇。在平常的開發板上,選擇linuxfb即可。
-qt-kbd-<driver>
-plugin-kbd-<driver>
-no-kbd-<driver>
選擇鍵盤的驅動支持,可以支持usb鍵盤,串口鍵盤等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中選擇。
qt-mouse-<driver>
-plugin-mouse-<driver>
-no-mouse-<driver>
滑鼠的驅動支持,一般都會選擇tslib,可以完美地支持觸摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中選擇吧。
-iwmmxt
加入iWMMXt指令的編譯,也只是部分XScale架構才具有。
-no-glib
-glib
是否加入glib庫的支持,glib庫對應即gtk庫,就也是說加入後可以使用gtk。

Ⅲ 我在安編譯glib遇到這個問題怎麼解決gclosure.c:27:17: fatal error: ffi.h: No such file or directory

需要安裝libffi-dev包,你用的什麼系統?如果是ubuntu或者debian的話,運行:
sudo apt-get install libffi-dev

Ⅳ 怎麼在 windows 下編譯 pidgin-lwqq

參考lwqq/wiki配置好編譯環境
下載lwqq並放在lwqq_root/lwqq目錄下並編譯
新建的文件夾必須為build,查找路徑是寫死了的
使用 cmake .. -G "MSYS Makefiles" -DWIN32_LIBS_DIR=... -DWITH_LIBUV=Off -DWITH_LIBEV=Off 編譯.因為非同步直接使用pidgin內置的支持來完成
從這里下載pidgin的源代碼,並且解壓縮到lwqq_root/pidgin目錄下,根據BuildWinPidgin編譯Windows版本的Pidgin(其實主要是為了獲取libpurple)
pidgin/win32/gtkdocklet-win32.c

pidgin/win32/gtkwin32dep.c
pidgin/win32/wspell.c 在 #include <windows.h> 前面添加 #include "internal.h"
pidgin/plugins/win32/winprefs/winprefs.c 將 #include "internal.h" 放在 #include <gtk/gdkwin32.h> 前面
為了方便可以直接將下面的文本復制為patch.sh,放在pidgin目錄下並用 sh patch.sh來自動替換:
sed -i '0,/^#include.*/s//#include "internal.h"\n&/' \
pidgin/win32/gtkdocklet-win32.c \
pidgin/win32/gtkwin32dep.c \
pidgin/win32/wspell.c \
pidgin/plugins/win32/winprefs/winprefs.c

一些包的名字有問題,應該是源代碼不是最新的緣故:nss的那個包文件夾名字為nss-3.13.6-nspr-4.9.2以及pidgin-inst-deps-20120910
在win8下編譯,會因為wstcpip和winsock的沖突,導致無法編譯,需要調整include的順序:將 #include "internal.h" 放在 #include <windows.h> 前面,在以下文件中
在這里下載並解壓縮到win32-dev中
使用 make -f Makefile.mingw install 編譯
在第2步中就會獲取glib的依賴,所以這里不用再做什麼.
在這里下載spider monkey的mingw32預編譯好的包,解壓縮到win32-dev/js-1.8.5-mingw32目錄下.
需要使用在上面提供的依賴的壓縮包文件,如果是隨意復制其它來源的dll(如pthreadGC2.dll會導致這些dll依賴libgccsw***.dll 從而使得靜態鏈接的libwebqq.dll失效,直接導致了pidgin退出的時候出現異常錯誤)
prepare directly
也可以直接下載整理好的傻瓜包中的pidgin-dependencies.7z和pidgin-lwqq-dependencies.7z直接解壓縮到win32-dev中,pidgin源代碼中需要修改的文件放在了pidgin-dependencies/pidgin目錄下了。
build
打開一個MinGW Shell,進入lwqq_root目錄,輸入
git clone https://github.com/xiehuc/pidgin-lwqq.git
git submole init
git submole update
cd pidgin-lwqq
mkdir build;cd build
cmake .. -G "MSYS Makefiles" -DWIN32_LIBS_DIR=`lwqq_root/win32-dev`的絕對路徑 -DPACKAGE=ZIP
make

最後,就可以在build/src目錄下獲得libwebqq.dll. PACKAGE選項可以自動打包成zip文件,使用make package之後可以在build目錄下獲得zip包
install
將製作的zip包解壓縮到pidgin的根目錄即可。執行pidgin就可以在協議中看到WebQQ協議了

Ⅳ 如何使用gcc在EditPlus編輯器下對GTK程序進行靜態編譯

GTK的安裝

sudo apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器

sudo apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具

sudo apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件

sudo apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置

sudo apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔

sudo apt-get instal glade libglade2-dev #這將安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫。在Ubuntu的機器上折騰了一下,復制了網上教程的代碼在本機上編譯。代碼的文件名:t1.c。按照教程,用以下命令編譯:

gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`

編譯結果:找不到gtk/gtk.h。

因為我的Ubuntu是Gnome系統,所以我以為gtk+2.0的開發程序(頭文件和庫文件)應該已經安裝在計算機上了。其實不然,如果在Ubuntu 上開發gtk+2.0的程序,需要安裝相應的頭文件和庫。在控制台窗口輸入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。再次應用編譯命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,編譯通過,運行。

pkg-config是一個用來管理包的程序,在控制台輸入 pkg-config --cflags --libs gtk+-2.0 的運行結果:

-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmole-2.0 -ldl -lglib-2.0

可以看出,輸出的文本包括了gcc編譯gtk+2.0所需要的所有選項(頭文件目錄和庫文件)。

這里有一點需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0兩側的引號並不是真正的引號,而是鍵盤數字件那一行,最左邊的那個字元。如果錯用了單引號,gcc無法使用 pkg-config --cflags --libs gtk+-2.0產生的文本作為編譯選項。構造程序。
$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest
gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`

//////////////////////////////////////////////////////////////////////////////////////////////////////

首先獲得超級用戶許可權

apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器
apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具
apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件
apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置
apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序
apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔
apt-get instal glade libglade2-dev #這將安裝基於GTK的界面構造程序

都是安裝好後測試一下程序hello.c

#include <gtk/gtk.h> ----------我編譯時老是說找不到頭文件,後來在/usr/include里找到gtk-2.0/gtk/gtk.h,原來是路徑錯誤,最後將頭文件路徑修改為<gtk-2.0/gtk/gtk.h>,終於好了!

void hello(GtkWidget *widget,gpointer data)
{
g_print("Hello 大家好\n");
}
gint delete_event(GtkWidget *widget,GdkEvent *event,gpointer data)
{
g_print ("delete event occurred\n");
return(TRUE);
}
void destroy(GtkWidget *widget,gpointer data)
{
gtk_main_quit();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *button;
gtk_init (&argc, &argv);
window=gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_signal_connect (GTK_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete_event),NULL);
gtk_signal_connect (GTK_OBJECT (window), "destroy",GTK_SIGNAL_FUNC (destroy), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
button = gtk_button_new_with_label ("Hello 大家好");
gtk_signal_connect (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC (hello), NULL);
gtk_signal_connect_object (GTK_OBJECT (button), "clicked",GTK_SIGNAL_FUNC(gtk_widget_destroy),GTK_OBJECT (window));
gtk_container_add (GTK_CONTAINER (window), button);
gtk_widget_show (button);
gtk_widget_show (window); /*顯示一個窗口*/
gtk_main(); /*進入主循環*/
return(0);
}

最後編譯運行:

$ gcc hello.c -o hello `pkg-config --cflags --libs gtk+-2.0`
$ . /hello

////////////////////////////////////////////////////////////////////

GTK的安裝

sudo apt-get install vim #使用vim來編寫代碼,當然您可以使用任何自己喜歡的編輯器

sudo apt-get install build-essential #這將安裝gcc/g++/gdb/make 等基本編程工具

sudo apt-get install gnome-core-devel #這將安裝 libgtk2.0-dev libglib2.0-dev 等開發相關的庫文件

sudo apt-get install pkg-config #用於在編譯GTK程序時自動找出頭文件及庫文件位置

sudo apt-get install devhelp #這將安裝 devhelp GTK文檔查看程序

sudo apt-get install libglib2.0-doc libgtk2.0-doc #這將安裝 gtk/glib 的API參考手冊及其它幫助文檔

sudo apt-get instal glade libglade2-dev #這將安裝基於GTK的界面GTK是開發Gnome窗口的c/c++語言圖形庫。在Ubuntu的機器上折騰了一下,復制了網上教程的代碼在本機上編譯。代碼的文件名:t1.c。按照教程,用以下命令編譯:

gcc t1.c 'pkg-config --cflags --libs gtk+-2.0`

編譯結果:找不到gtk/gtk.h。

因為我的Ubuntu是Gnome系統,所以我以為gtk+2.0的開發程序(頭文件和庫文件)應該已經安裝在計算機上了。其實不然,如果在Ubuntu 上開發gtk+2.0的程序,需要安裝相應的頭文件和庫。在控制台窗口輸入sudo apt-get install libgtk2.0*, gtk+2.0所需的所有文件統通下載安裝完畢。再次應用編譯命令:gcc t1.c 'pkg-config --cflags --libs gtk+-2.0,編譯通過,運行。

pkg-config是一個用來管理包的程序,在控制台輸入 pkg-config --cflags --libs gtk+-2.0 的運行結果:

-DPNG_NO_MMX_CODE -I/usr/include/gtk-2.0 -I/usr/lib/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm -lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXcomposite -lXdamage -lpango-1.0 -lcairo -lX11 -lXfixes -lgobject-2.0 -lgmole-2.0 -ldl -lglib-2.0

可以看出,輸出的文本包括了gcc編譯gtk+2.0所需要的所有選項(頭文件目錄和庫文件)。

這里有一點需要注意, gcc t1.c `pkg-config --cflags --libs gtk+-2.0`, pkg-config --cflags --libs gtk+-2.0兩側的引號並不是真正的引號,而是鍵盤數字件那一行,最左邊的那個字元。如果錯用了單引號,gcc無法使用 pkg-config --cflags --libs gtk+-2.0產生的文本作為編譯選項。構造程序。

$ gcc gtkhello.c -o gtktest `pkg-config --cflags --libs gtk+-2.0`
$ ./gtktest

gcc gtk1.c `pkg-config --cflags --libs gtk+-2.0`

Ⅵ 在編譯程序時報錯,glib.h沒有這個文件或目錄,我用yum install試了不行,該怎麼辦,我需要glib2.0版本

yum whatprovides glib.h

找出要裝的包,
然後用
yum install 包名
不一定是2.0的包。如果不是你可以到網上搜一下,2.0的rpm包,然後用rpm -ivh 包名安裝。

Ⅶ 請教rpm包中glib和glib-devel的包與GLIB源碼編譯區別

devel 包主要是供開發用,至少包括以下2個東西: 1. 頭文件 2. 鏈接庫 有的還含有開發文檔或演示代碼。 以 glib 和 glib-devel 為例: 如果你安裝基於 glib 開發的程序,只需要安裝 glib 包就行了。 但是如果你要編譯使用了 glib 的源代碼

Ⅷ 編譯glib缺少pkg-config怎麼辦

步驟一:部署protoc.exe 1)sudo su ---進入管理模式 //以下操作切換至protobuf文件夾下 2)./configure 3)make 4)make check 5)make install 此時可以查看protobuf文件夾下面的makefile文件,可以查看-build表示的本機環境以及-host表示的編譯

Ⅸ 如何在Ubuntu上編譯qnx的glib

main()
{
int a,b;
a=077;
b=a|3;
printf("\40: the a & b(decimal) is %d \n",b);
b|=7;
printf("\40: the a & b(decimal) is %d \n",b);
}

閱讀全文

與glib靜態編譯相關的資料

熱點內容
天刀秋夜雨伺服器什麼時候開的 瀏覽:130
今夜不設防txt 瀏覽:598
免費安全看片的網站 瀏覽:396
人參精曹查理演的電影播放 瀏覽:919
壓縮機128y 瀏覽:119
韓國電影女主是個女演員,愛上夢中的男人 瀏覽:950
我老公的家教老師女演員表 瀏覽:296
李華月代表作 瀏覽:833
哪裡能找到房東直租的房子app 瀏覽:592
flowplayer源碼 瀏覽:661
:3vpt 瀏覽:683
恐龍星球的僵屍片 瀏覽:199
差分進化演算法代碼 瀏覽:966
主角叫陸宇的小說 瀏覽:954
午馬演的腳踩胸的電影 瀏覽:223
980影視 瀏覽:380
主角葉楓的全部小說 瀏覽:634
python多態的定義 瀏覽:289
女主渣婊三觀不正快穿 瀏覽:677