2011-08-22 61 views
0

我嘗試將X11,giblib作爲靜態庫鏈接到cmake。我無法將靜態庫鏈接到cmake

所以我把這段代碼中的CMakeLists.txt

set(BUILD_SHARED_LIBS FALSE) 
set(CMAKE_EXE_LINKER_FLAGS '-static') 

target_link_libraries(Printmade2 Imlib2) 
target_link_libraries(Printmade2 /usr/lib/i386-linux-gnu/libX11.a) 
target_link_libraries(Printmade2 /usr/lib/libgiblib.a) 

後執行 '做',出現此消息。

/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(OpenDis.o): In function `OutOfMemory': 
(.text+0x459): undefined reference to `xcb_disconnect' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(OpenDis.o): In function `XOpenDisplay': 
(.text+0x8f5): undefined reference to `xcb_get_setup' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(OpenDis.o): In function `XOpenDisplay': 
(.text+0xedb): undefined reference to `xcb_get_maximum_request_length' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(xcb_disp.o): In function `_XConnectXCB': 
(.text+0x176): undefined reference to `xcb_parse_display' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(xcb_disp.o): In function `_XConnectXCB': 
(.text+0x1d7): undefined reference to `xcb_connect_to_display_with_auth_info' 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(xcb_disp.o): In function `_XConnectXCB': 
(.text+0x1f5): undefined reference to `xcb_get_file_descriptor' 
... 
/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libX11.a(ClDisplay.o): In function `XCloseDisplay': 
(.text+0xbd): undefined reference to `xcb_disconnect' 
collect2: ld returned 1 exit status 

我猜的東西是missded,所以我應該鏈接更多的東西

,但我無法找到我的文件系統.o文件將。

(例如,OpenDis.o,xcb_disp.o,ClDisplay.o)

我應該怎麼做才能解決這個問題?

回答

0

它看起來像你缺少libxcb靜態庫。 http://xcb.freedesktop.org/

+0

當我鏈接libxcb庫時,錯誤消息被更改。 '/usr/lib/i386-linux-gnu/gcc/i686-linux-gnu/4.5.2/../../../libxcb.a(xcb_auth.o):在函數'_xcb_get_auth_info'中: ( .text + 0x68a):對'XdmcpWrap'的未定義引用也許libxcb.a需要一些其他庫。有什麼方法可以知道相關的圖書館嗎? – Oz6848

+0

我找到每個相關的庫。非常感謝您的回答。 – Oz6848

+0

作爲參考,許多庫項目將創建類似_/usr/lib/pkgconfig/libname.pc_該文件包含提示鏈接器來查找的東西。不知道Xorg的東西是否創建了這些文件,但是當你試圖推斷靜態鏈接的依賴時,它們可以作爲提示來使用 – mtdarland