簡體   English   中英

CMake搜索錯誤的文件?

[英]Cmake searching for wrong files?

我正在嘗試編譯我的老師給我的工具。 它使用Boost庫(我已經設置並設置了環境變量),Boost由Cmake找到。

但是,Cmake告訴我找不到名為“ boost_program_options”的庫。 cmake的輸出告訴我,它僅在查找名稱為“ libboost_program_options- vc110 -mt-1_61”的文件。 在我的Boost目錄中,我只能找到名為“ libboost_program_options- vc140 -mt-1_61”的文件,這些文件都包含在D:\\ local \\ boost_1_61_0 \\ lib64-msvc-14.0中(我將BOOST_LIBRARYDIR設置為該文件)。 BOOST_ROOT ist設置為D:\\ local \\ boost_1_61_0,而BOOST_INCLUDEDIR設置為D:\\ local \\ boost_1_61_0 \\ boost。 那么,Cmake為什么要尋找錯誤的文件?

我得到的Cmake文件是

project(generator)
cmake_minimum_required(VERSION 2.8)
set(Boost_USE_STATIC_LIBS   ON)
set(Boost_USE_MULTITHREADED ON)
set(BOOST_MIN_VERSION "1.55.0")
find_package(Boost COMPONENTS program_options REQUIRED)
include_directories(${Boost_INCLUDE_DIRS})
aux_source_directory(. SRC_LIST)
add_executable(${PROJECT_NAME} ${SRC_LIST})
set(CMAKE_CXX_FLAGS "-lboost_program_options")

if(UNIX)
    SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -std=gnu++0x")
endif()

簡而言之:

Visual Studio 11的項目應使用帶有后綴-vc110 Boost庫。 對於庫-vc140-vc140 Visual Studio 14 MSVC的版本由cmake-generator選擇。

說明:

搜索特定庫的是FindBoost.cmake腳本。 (您可以通過find_package(Boost)調用此腳本)。

Boost使用庫足夠來區分不同目標的庫。 -vc110類的-vc110表示使用哪個庫進行編譯的編譯器。 -vc110對應Visual Studio 11-vc140 -到Visual Studio 14

如果使用cmake生成器,則使用Visual Studio 11 (可能是cmake安裝的默認生成器)。 因此Boost庫應該與其編譯器兼容。 這就是為什么只搜索帶-vc110后綴的庫的原因:其他庫無法與此編譯器鏈接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM