Bog*_*sar 9 c++ build cmake conan
我有 CMakeLists.txt 文件:
project(ip_filter LANGUAGES CXX)
cmake_minimum_required(VERSION 2.8)
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
add_executable(ip_filter ip_filter.cpp)
target_link_libraries(ip_filter ${CONAN_LIBS})
Run Code Online (Sandbox Code Playgroud)
在同一文件夹中,我有一个 conanfile.txt:
[requires]
range-v3/0.9.1@ericniebler/stable
[generators]
cmake
Run Code Online (Sandbox Code Playgroud)
当我尝试构建它时,使用:
$ cmake CMakeLists.txt
我有这个输出:
CMake Error at CMakeLists.txt:4 (include):
include could not find load file:
/home/bogdasar/Documents/C++_Programming/ip_filter/conanbuildinfo.cmake
CMake Error at CMakeLists.txt:5 (conan_basic_setup):
Unknown CMake command "conan_basic_setup".
-- Configuring incomplete, errors occurred!
See also "/home/bogdasar/Documents/C++_Programming/ip_filter/CMakeFiles/CMakeOutput.log".
Run Code Online (Sandbox Code Playgroud)
我有一段时间被同一个问题困住了。经过几个线程后,我找到了解决方案。这里我也总结一下。
这里的问题是 cmake 无法找到 conanbuildinfo.cmake。当您调用 conan install 时应生成此文件。
如果没有生成,那么您应该在 conanfile.py 中包含 cmake 生成器。就像下面这样:
generators = "virtualenv", "virtualrunenv", "cmake_find_package", "cmake"
Run Code Online (Sandbox Code Playgroud)
或者你可以在你的柯南个人资料中提及相同的内容。就像下面这样:
[generators]
cmake
Run Code Online (Sandbox Code Playgroud)
一旦生成该文件,cmake 应该能够找到它。conan_basic_setup() 步骤应该通过。