Cmakelists 与柯南

Posted

技术标签:

【中文标题】Cmakelists 与柯南【英文标题】:Cmakelists with conan 【发布时间】:2018-11-22 10:11:41 【问题描述】:

我在用柯南创建 Cmakelists 的过程中遇到了一些问题。 我只是按照官方的例子,但它对我不起作用......

这是我的 Cmakefiles.txt :

cmake_minimum_required(VERSION 2.8)
project(UDP_Server)

set(CMAKE_BUILD_TYPE Release)

if(NOT EXISTS "$CMAKE_BINARY_DIR/conan.cmake")
message(STATUS "Downloading conan.cmake from 
https://github.com/conan-io/cmake-conan")
file(DOWNLOAD "https://raw.githubusercontent.com/conan-io/cmake- 
conan/master/conan.cmake"
              "$CMAKE_BINARY_DIR/conan.cmake")
endif()

include($CMAKE_BINARY_DIR/conan.cmake)
conan_cmake_run(REQUIRES Hello/0.1@memsharded/testing
            BASIC_SETUP
            BUILD missing)
add_executable(server server/server.cpp)
add_executable(client client/client.cpp)
target_link_libraries(main $CONAN_LIBS)

我的错误是:

ERROR: Failed requirement 'Hello/0.1@memsharded/testing' from 'PROJECT'
ERROR: Unable to find 'Hello/0.1@memsharded/testing' in remotes

CMake Error at conan.cmake:368 (message):
Conan install failed='1'
Call Stack (most recent call first):
conan.cmake:448 (conan_cmake_install)
CMakeLists.txt:14 (conan_cmake_run)


-- Configuring incomplete, errors occurred!

【问题讨论】:

这是柯南 (docs.conan.io/en/latest/howtos/cmake_launch.html) 的例子,所以你走在正确的道路上。错误信息是什么? 你在命令行中指定了吗? 我遇到了两个问题:首先是柯南示例不适用于我,错误消息是:柯南安装失败='1'(添加了 set(CMAKE_BUILD_TYPE Release))和第二个问题我不知道如何在同一个文件上添加 boost 依赖项 请就您启动的命令的柯南错误和完整的错误消息提出一个问题。然后对于 Boost,做同样的事情(但首先在网上查看,一旦你使用 find_package(Boost),CMake 中有很多 Boost 资源...... 我在 google 上找到了很多例子,但没有什么可以混合 conan 和 boost .... 我不知道如何安排 Cmakelists 以包含两者 【参考方案1】:

Hello/0.1@memsharded/testing 包只在 Memsharded 的remote中可用

因此,您需要在构建项目之前添加遥控器:

conan remote add memsharded https://api.bintray.com/conan/memsharded/conan-common 

否则,将无法找到该包。

另一种选择是下载项目并构建它:

git clone https://github.com/memsharded/conan-hello.git
cd conan-hello
conan create . memsharded/testing

【讨论】:

以上是关于Cmakelists 与柯南的主要内容,如果未能解决你的问题,请参考以下文章

用GoogleTest库编译程序失败,由柯南安装。

CMakeLists.txt 语法介绍与实例演练

工程下CmakeLists.txt

github的源代码cmakelists怎么使用

为 gtk、gtkmm 和 opencv 更正 CMakeLists.txt 文件

将 Makefile 转换为 CMakeLists.txt