繁体   English   中英

包含Irrlicht静态lib时的C ++编译错误

[英]C++ compile error when includeing Irrlicht static lib

尝试将Irrlicht静态库包含到我的cmake项目中时,U有一个编译错误

编译错误:

max@max-MS-7369:~/Desktop/survival/build$ make Scanning dependencies   of target survival
[ 33%] Building CXX object    src/CMakeFiles/survival.dir/technic.cpp.o
[ 66%] Building CXX object   src/CMakeFiles/survival.dir/render.cpp.o
[100%] Building CXX object    src/CMakeFiles/survival.dir/survival.cpp.o
Linking CXX executable    ../debug/survival
/usr/bin/ld:    ../../irrlicht/lib/Linux/libIrrlicht.a(CIrrDeviceLinux.o): undefined   reference to symbol 'XConvertSelection'
/usr/bin/ld: note:    'XConvertSelection' is defined in DSO    /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libX11.so  so try adding it to the linker command line
/usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/libX11.so: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [debug/survival] Error 1
make[1]: ***    [src/CMakeFiles/survival.dir/all] Error 2
make: *** [all] Error 2
max@max-MS-7369:~/Desktop/survival/build$

这就是我尝试包含lib的方式:

# find dependencies for irrlicht
FIND_PACKAGE(ZLIB)
FIND_PACKAGE(X11)
FIND_PACKAGE(OpenGL)
# includes
set( survival_CUSTOM_INCLUDES
    ${ZLIB_INCLUDE_DIR}
    ${X11_INCLUDE_DIR}
    ${OPENGL_INCLUDE_DIR}
    ${survival_SOURCE_DIR}/irrlicht/include
    )
# libraries
set( survival_CUSTOM_LIBRARIES
    ${ZLIB_LIBRARIES}
    ${X11_LIBRARIES}
    ${OPENGL_LIBRARIES}
    ${survival_SOURCE_DIR}/irrlicht/lib/Linux/libIrrlicht.a
    )

我不明白为什么它说它找不到XConvertSelection即使我已经包含了X11 lib。

我添加了这两个库来修复它

/usr/lib/x86_64-linux-gnu/libX11.so
/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1

它们不包括在FIND_PACKAGE()给出的库中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM