2011-08-22 99 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