踩坑日誌:CMAKE裏的ADD_SUBDIRECTORIES要在INCLUDE_DIRECTORIES後面

背景:

我想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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章