0

我正在尝试将 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 不知道柯南已经存储了 boost 文件)。

如何配置 netbeans 以使用柯南生成的包含路径?柯南创建了包含完整路径的 conanbildinfo.cmake 和 conanbuildinfo.txt,但我不知道如何在 netbeans 中使用它们。

希望有人能告诉我如何正确设置(或给我一个简短的 netbeans 示例项目) - 谢谢!

4

1 回答 1

0

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(请注意,此过程可能需要针对不同的配置运行,例如调试/发布)。

于 2017-10-08T21:24:46.560 回答