问题标签 [conan]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
914 浏览

c++ - Conan-Package:从其他 Conan-Packages 中获取编译文件

我正在使用柯南作为 C++ 的依赖项管理器,我想创建一个包,它需要来自另一个已经创建的柯南包的编译文件。我目前正在尝试为 OpenStreetMap-Library OSM-binary ( https://github.com/scrosby/OSM-binary.git ) 创建一个包。

该项目的 Makefile(可以在./OSM-binary/src/Makefile中找到)需要来自protobuf 项目https://github.com/google/protobuf )的名为 protoc 的文件。这个protoc文件可以在./protobuf/src中编译protobuf 项目后找到。

如果没有此文件,编译 OSM 源将失败并出现错误:make: ../protoc: Command not found


问题

正如柯南的文档建议将我需要的文件复制到我的包中的文件夹,例如头文件到./include,库到 . /lib等。据此,在通过 make 构建protobuf-project之后,我将通过复制提到的文件

到一个名为“脚本”的文件夹。

但此时黑魔法开始了。我的第一个问题是,我如何从另一个包中访问任何这些打包文件(例如 *.so 文件或包中存在的任何其他文件(这里是 protoc 文件))?对我来说,即使在阅读了柯南的文档之后,也不清楚柯南如何存储它的打包文件以及如何访问这些或任何其他在上一步中打包的文件。


现在回到OSM 项目tools.replace,我的方法是通过命令在 Makefile 中手动设置正确的路径。首先,我将 protobuf-packaged 声明为一项要求

并将 osm-Makefile 中的相应行(在 1.3.3 版中,第 7 行)替换为protoc -file 的正确路径。

现在这将我们引向我的实际问题:如何获取protoc -file 的路径,该路径可以在名为scripts的文件夹中的protobuf -package 中找到,或者还有其他方法吗?

谢谢,克里斯

0 投票
1 回答
926 浏览

cmake - 在 conanfiles 中安装构建时出错

当我在命令行上运行此命令时,我遇到了柯南包管理器的一些问题

但我的conanfile.py中有一些错误

你好/0.1@mohammad/stable: 错误: 包 '90ee443cae5dd5c1b4861766ac14dc6fae231a92' 构建失败

Hello/0.1@mohammad/stable:警告:构建文件夹 /home/mohammad/.conan/data/Hello/0.1/mohammad/stable/build/90ee443cae5dd5c1b4861766ac14dc6fae231a92

错误:Hello/0.1@mohammad/stable:build() 方法中的错误,第 14 行 cmake = CMake(self.settings) ConanException:CMake() 的第一个参数必须是 ConanFile。使用 CMake(自己)

这是我的conanfile.py

0 投票
2 回答
784 浏览

c++ - 将依赖列表(要求)从 conanfile.py 中分离出来

我们计划为我们的 C++ 代码建立柯南存储库。我们只想向开发人员公开依赖项列表(lib/version@user/channel),而不是我们放在 conanfile.py 中的逻辑我们正在计划这样做,因为我们正在围绕 conan 创建一个包装器,它将有几个逻辑和检查。这个包装器将暴露给用户。他们不需要知道详细的逻辑和构建步骤。

有没有办法在 conanfile.py 之外实现需求(依赖项列表),并使列表对用户可用,以便他们可以选择他们想要使用的库的哪个版本 - 类似的东西(虽然不一样) Maven 世界中的 pom.xml ?

0 投票
1 回答
206 浏览

jenkins - Jenkins 管道将 conan.tmpxxxxxx 目录留在工作区下

背景,我们刚刚开始使用 conan 并希望将其与 Jenkins 管道构建集成,这对我们来说也是新的。

我有一个简单的管道作业,它遍历 yaml 文件以发现产品中使用的组件,然后调用另一个管道 UploadRecipe,下载组件源,找到配方并将它们上传到工件中的相关存储库

但是,它在工作区/UploadRecipe@tmp 中留下了一大堆 conan.tmp 目录

管道没有失败,但它们从未被清理干净,它也发生在我们用来生成消耗 GB 的大型 iso 文件的其他柯南相关管道中,但上传配方示例更易于解释并显示相同的行为。

我的管道 groovy 脚本有问题吗?

即是否有一些我应该调用的命令来整理?

0 投票
0 回答
1202 浏览

cmake - *.pb.h 和 *.pb.cc protobuf 文件未生成

我正在使用 protobuf_generate_cpp() 来从 *.proto 文件生成 *.cc 和 *.h 文件,但它没有被执行。我没有收到任何错误消息,只是跳过了这些行。CMakeLists.txt 文件如下所示:

我的解决方案已创建 @location CMAKE_BINARY_SOURCE_DIR 但未创建 NAME.pb.h 和 NAME.pb.cc 文件。有人可以让我知道问题可能是什么吗?任何建议表示赞赏。

0 投票
1 回答
1509 浏览

c++11 - boost::filesystem::current_path() 返回空路径

我有一个 C++ 程序,我需要当前路径来稍后创建一个文件夹。我的可执行文件的位置是,比方说/home/me/foo/bin。这就是我运行的:

我在 Ubuntu 16.04 上运行,使用与包管理器 Conan 一起安装的 Boost 1.66。

我曾经在不使用柯南的情况下使用以前版本的 Boost(我相信是 1.45)成功运行此程序。Boost 通常安装在我的机器上。我现在在运行时得到一个核心转储create_directories( boostPath);

两个问题:

  1. 为什么不current_path()为我提供实际路径,而是返回和空路径?
  2. 即使 current_path() 什么也没返回,为什么即使我运行它,我仍然会有一个核心转储sudo?我不会简单地在根目录下创建文件夹吗?

编辑:

运行编译后的程序,cout在两行之间有一些上述变量的输出,而不是使用调试模式,通常会给我以下输出:

有时(大约 20% 的时间)会给我以下输出:

编辑2:

运行conan profile show default我得到:

0 投票
1 回答
215 浏览

artifactory - Artifactory中柯南存储库中的不同结构

我注意到 Artifactory 中柯南存储库的不同存储库结构。

1. Artifactory Enterprise 6.3.2
存储库布局:conan-default
存储库结构:repository_name/conan_username/conan_package_name/version/channel

2. Artifactory Enterprise 5.4.6
存储库布局:conan-default
存储库结构:repository_name/conan_package_name/version/conan_username/channel

你知道为什么吗?是因为Artifactory版本吗?我在 Artifactory 发行说明中没有找到与柯南存储库结构相关的任何内容。

0 投票
1 回答
531 浏览

conan - 从源代码构建时,柯南是否安装构建依赖项?

例如,如果我的包需要 gcc 来构建并且目标系统上不存在 gcc,那么从源代码构建我的包时会安装它吗?如果是这样,我如何为我的包指定构建依赖项?对于不同的系统,它们可能不同。

0 投票
1 回答
178 浏览

log4cxx - 如何用柯南安装 log4cxx?

我开始尝试柯南。我找到了这个GitHub 存储库,但我不确定如何处理它。

我想通过conan install.

0 投票
1 回答
683 浏览

artifactory - 柯南用户 cmd 生成无效的服务器响应

我在 Windows 7 上安装了 Artifactory Community Edition for C/C++ 6.3.3 并创建了一个 conan 存储库。在同一台机器上,我确实有柯南 1.7.3。我将存储库添加到遥控器列表中

但是当我尝试添加用户时出现此错误