CMake 和 SOIL 链接

CMake and SOIL linking

我为我的 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)

你必须设置SOIL到SOIL库,并且添加也可能使用link_directories添加到SOIL库的路径。