【发布时间】:2018-11-18 17:06:15
【问题描述】:
我为我的 C++ OpenGL 项目安装了 SOIL 库,但我总是得到
undefined reference to `SOIL_load_OGL_texture'
我从搜索中了解到,这意味着 OpenGL 在 SOIL 之前链接。我对 CMAKE 了解不多,但现在我的 CMAKEFile 看起来像这样:
cmake_minimum_required(VERSION 2.8)
project(game)
add_executable(game main.cpp ...(many files))
find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED)
include_directories( ${OPENGL_INCLUDE_DIRS} ${GLUT_INCLUDE_DIRS})
target_link_libraries(game ${OPENGL_LIBRARIES} ${SOIL} ${GLUT_LIBRARY})
set(CMAKE_CXX_STANDARD 14)
【问题讨论】:
-
旁注:设置
CMAKE_CXX_STANDARD仅影响followed 可执行文件和库。将此设置放在CMakeLists.txt的末尾没有意义。 -
你的 bug 好像就在这里
${SOIL}你是怎么设置的?你不需要find_package()吗?