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)
我應該怎麼做才能解決這個問題?
當我鏈接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
我找到每個相關的庫。非常感謝您的回答。 – Oz6848
作爲參考,許多庫項目將創建類似_/usr/lib/pkgconfig/libname.pc_該文件包含提示鏈接器來查找的東西。不知道Xorg的東西是否創建了這些文件,但是當你試圖推斷靜態鏈接的依賴時,它們可以作爲提示來使用 – mtdarland