Conan.io和netbeans - howto设置项目
问题描述:
我试图将NetBeans作为我的新的IDE for C++。我很乐意使用conan.io作为包管理器。Conan.io和netbeans - howto设置项目
我conanfile.py看起来像这样(从柯南网站):
class MyConanTestProj(ConanFile):
settings = "os", "compiler", "build_type", "arch"
requires = "Protobuf/[email protected]/stable", "Boost/[email protected]/stable" # comma separated list of requirements
generators = "cmake", "txt"
default_options = "Poco:shared=True", "OpenSSL:shared=True", "Boost:shared=True"
def imports(self):
self.copy("*.dll", dst="bin", src="bin") # From bin to bin
self.copy("*.dylib*", dst="bin", src="lib") # From lib to bin
# self.copy('*.so*', dst='bin', src='lib')
def build(self):
cmake = CMake(self)
cmake.configure()
cmake.build()
我的CMakeLists.txt:
project(MyTestProj)
cmake_minimum_required(VERSION 2.8.12)
add_definitions("-std=c++14")
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
add_executable(testProj testProj.cpp)
target_link_libraries(testProj ${CONAN_LIBS})
testProj.cpp:(只是为了看看它编译和链接。 ..)
#include <boost/filesystem.hpp>
int main(void) { return 0; }
当我创建一个build目录并运行柯南等它安装和工作原理:
mkdir build -p && cd build && conan install .. && cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release && cmake --build
但在NetBeans中,它向我展示了一个未解决的include(netbeans不知道那里有conan存储boost文件)。
如何配置netbeans以使用conan生成的include路径? 柯南创建conanbildinfo.cmake和conanbuildinfo.txt包含完整路径,但我不知道如何在netbeans中使用它们。
希望有人能告诉我如何正确设置(或给我一个netbeans的简短示例项目) - 谢谢!
答
Netbeans可能会使用特定的构建文件夹布局,因为以前的CLion版本只是将“临时”构建文件夹放在系统中的某个位置。
我猜测CMake执行抱怨没有找到conanbuildinfo.cmake
文件,而不是Boost头文件。
因此,首先要知道Netbeans使用哪个文件夹作为CMake二进制目录。你可以添加到您的CMakeLists.txt
:
if(NOT EXISTS ${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
message(FATAL_ERROR "Missing conanbuildinfo. Move to ${CMAKE_BINARY_DIR} folder, and run conan install there")
endif()
include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
然后,就cd
到该文件夹,conan install
与相应的配置(注意,此过程可能需要进行不同的配置来运行,就像调试/发布)。