我尝试使用NetBeans作为我的c ++新IDE。我很想用conan.io作为包经理。
我的conanfile.py看起来像这样(来自柯南网站):
class MyConanTestProj(ConanFile):
settings = "os", "compiler", "build_type", "arch"
requires = "Protobuf/3.1.0@inexorgame/stable", "Boost/1.64.0@conan/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; }
当我创建构建目录并运行conan install等时,它可以工作:
mkdir build -p && cd build && conan install .. && cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release && cmake --build
但是在NetBeans中它向我显示了一个未解析的包含(netbeans不知道conan已存储了boost文件)。
如何配置netbeans以使用conan生成的包含路径? 柯南创建了conanbildinfo.cmake和conanbuildinfo.txt,其中包含完整路径,但我不知道如何在netbeans中使用它们。
希望有人能告诉我如何正确设置(或者给我一个netbeans的简短示例项目) - 谢谢!
答案 0 :(得分:0)
Netbeans可能正在使用特定的构建文件夹布局,就像之前版本的CLion所做的那样,只是将&#34;临时&#34;在系统中的某处构建文件夹。
我猜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
具有相应的配置(请注意,可能需要针对不同的配置运行此过程,例如Debug / Release)。