C++ GLEW链接错误:未定义对符号的引用';XConvertSelection';
尝试构建图形项目时,我得到:C++ GLEW链接错误:未定义对符号的引用';XConvertSelection';,c++,opengl,glfw,undefined-reference,glew,C++,Opengl,Glfw,Undefined Reference,Glew,尝试构建图形项目时,我得到: /usr/bin/ld: /usr/local/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection' //usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line 我尝试了另一个答案,即代码> PKG配置——静态-LIBS X11 XR
/usr/bin/ld: /usr/local/lib/libglfw3.a(x11_window.c.o): undefined reference to symbol 'XConvertSelection'
//usr/lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
我尝试了另一个答案,即代码> PKG配置——静态-LIBS X11 XRANDR席XXF86VM GLW-GLFW3 < /P> 我把它放在我的.sh文件中,但我不知道放在哪里,所以我把它放在了所有的地方,但它仍然不起作用。这是我的run.sh文件
mkdir build
cd build
pkg-config --static --libs x11 xrandr xi xxf86vm glew glfw3
cmake ..
pkg-config --static --libs x11 xrandr xi xxf86vm glew glfw3
make -j8
pkg-config --static --libs x11 xrandr xi xxf86vm glew glfw3
cd bin
./menger
整个程序在我的mac上本地运行,但我正在尝试在一些不同的环境下运行它,看看其他ppl是否也可以运行我的项目。我在学校的linux计算机上试用了它,结果发现xconvert选择错误
这是回购协议,如果它有助于:
顺便问一下,这是我的gl3.cmake文件,这和构建文件是一样的吗
if (APPLE)
set(GLEW_INCLUDE_DIRS "/usr/local/Cellar/glew/2.1.0_1/include")
set(GLEW_LIBRARIES "/usr/local/Cellar/glew/2.1.0_1/lib/libGlEW.a")
endif ()
INCLUDE_DIRECTORIES(${GLEW_INCLUDE_DIRS})
LINK_LIBRARIES(${GLEW_LIBRARIES})
IF (WIN32)
find_package(glfw3 CONFIG REQUIRED)
LIST(APPEND stdgl_libraries glfw ${GLEW_LIBRARIES})
ELSE ()
FIND_PACKAGE(PkgConfig REQUIRED)
#pkg_search_module(GLFW3 REQUIRED glfw3)
set(GLFW3_INCLUDE_DIRS "/usr/local/include")
INCLUDE_DIRECTORIES(${GLFW3_INCLUDE_DIRS})
set(GLFW3_STATIC_LIBRARIES "/usr/local/lib/libglfw3.a")
LIST(APPEND stdgl_libraries ${GLFW3_STATIC_LIBRARIES} ${GLEW_LIBRARIES})
ENDIF ()
message(STATUS "GLEW_LIBRARIES=${GLEW_LIBRARIES}")
message(STATUS "GLFW_LIBRARIES=${GLFW3_STATIC_LIBRARIES}")```
显示的整个
pkg config
命令只列出了库。它实际上与它们没有联系。您需要修改生成文件以实际链接到库。生成文件是否与我在问题中编辑的gl3.cmake相同?所有的东西都在我自己的电脑上工作,所以我确信这些图书馆正在某个地方链接起来。与mac相比,linux中的链接过程不同吗