alf*_*lfa 5 c++ x11 compiler-errors cmake irrlicht
尝试将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库,也无法找到它.
我添加了这 2 个库来修复它
/usr/lib/x86_64-linux-gnu/libX11.so
/usr/lib/x86_64-linux-gnu/libXxf86vm.so.1
Run Code Online (Sandbox Code Playgroud)
它们没有包含在 FIND_PACKAGE() 给出的库中
| 归档时间: |
|
| 查看次数: |
2552 次 |
| 最近记录: |