背景:
我想include一個第三方庫。我已經把庫放到third_party這個文件夾裏了,也在CMakeLists裏設置了INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/third_party)。但是編譯器死活找不到這個庫。
錯誤:
project(LabelAndStore)
cmake_minimum_required(VERSION 2.8)
SET(CMAKE_CONFIGURATION_TYPES Debug)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
ADD_SUBDIRECTORY(src)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/third_party)
正確:project(LabelAndStore)
cmake_minimum_required(VERSION 2.8)
SET(CMAKE_CONFIGURATION_TYPES Debug)
INCLUDE_DIRECTORIES(${PROJECT_SOURCE_DIR}/third_party)
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
ADD_SUBDIRECTORY(src)
總結:
ADD_SUBDIRECTORIES要在INCLUDE_DIRECTORIES後面。或者說,在ADD_EXECUTABLE之前要先INCLUDE_DIRECTORIES。