问题标签 [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.
c++ - 使用柯南和 Cmake 对 Boost 存档的未定义引用
首先,我在根目录下使用以下命令和文件设置我的项目:
柯南文件.txt
CmakeList.txt
在我尝试使用make
. 这是我的 main.cpp
编译时,我得到一个未定义的引用:
我不知道这个错误的来源.. 编译器?图书馆链接?这很奇怪,因为我可以使用 boost 的其他功能,它不仅仅适用于 boost 序列化......
/!\这不是重复的,目的是了解柯南为什么不链接Boost.Serialization,应该链接。
qt - CMake & QT5 & Conan // CMAKE_AUTOUIC 不生成ui头文件
我试过这个线程中给出的解决方案:CMake & QT5 - QT5_WRAP_UI not generate ui header files but nothing changes。
这是我的第一个 CMakeLists.txt (在项目的根目录,它调用了第二个)
第二个是:
我的 main.cpp 得到了#include "ui_mainwindow.h"
,这是错误输出:
有任何想法吗?我尝试将 set(CMAKE_AUTOUIC ON) 放在我的 CMaleLists.txt 的不同位置,但看起来没有任何变化(项目文件夹中没有创建 ui_mainwindow.h)
PS:我正在使用多平台二进制管理器 CONAN 来获取 Qt(但是使用没有 .ui 文件的 Qt 可以正常工作)
c++ - 如何从目标触发 CMake 重新配置?
我有以下设置:
在 CMake 之前运行一个conan
命令,生成 conanbuildinfo.cmake。这包含稍后在编译期间使用的包含路径等。如果我更改 conanfile,我想再次触发 conan 并从生成的 ninja build 重新运行 CMake。我有一个可以调用柯南的脚本,它会正确更新所有内容。但是,这发生在运行 CMake 之后,即使更改了 conanbuildinfo,CMake 也不会再次运行。这会导致忍者“看不到”依赖图中的更改,因此它不会重建它必须重建的所有内容。这意味着我必须运行ninja
两次才能更新所有内容。我目前触发重新配置的方式是这样的:
运行此脚本后有没有办法触发重新配置?
我尝试使用以下内容但没有成功:
- CMAKE_CONFIGURE_DEPENDS
- 从 reconfigure.py 脚本运行 cmake
- 从 reconfigure.py 脚本中触摸主 CMakeLists.txt
- 使用 execute_process 运行脚本
version - 柯南自动增量数据包版本
我开始使用柯南来处理我的 C++ 代码库,但我不明白它是否提供了一种在上传版本后自动增加包版本的方法。
我说的是我用来执行的npm postpublish 钩子脚本之npm version patch
类的东西:所以我总是确定在发布之后,我正在开发一个新版本。
我有任何命令可以更新我的版本字段conanfile.py
吗?部署后是否可以自动调用?
cmake - 与 CMake 和工具链文件交叉编译时的 Conanfile 设置
我读到编译器应该在调用柯南的构建命令时指定,或者在[settings]
配置文件的部分。
但是,我正在使用 Cmake 进行构建,并且已经使用CMAKE_TOOLCHAIN_FILE
. 我发现我可以在[env]
配置文件的部分中使用 进行设置CONAN_CMAKE_TOOLCHAIN_FILE
,但在settings
.
现在我对指定编译器的可能性感到困惑,该编译器与CONAN_CMAKE_TOOLCHAIN_FILE
.
在这种情况下指定编译器的正确方法是什么?
用 替换标准设置部分是否安全CONAN_CMAKE_TOOLCHAIN_FILE
?
即在conanfile.py中:
settings = "CONAN_CMAKE_TOOLCHAIN_FILE"
(另外,为什么没有在 中指定源settings
?这肯定是影响输出二进制文件的最常见更改吗?)
c++ - 柯南有没有办法导出一个空目录?
考虑包含一个空文件夹(称为empty_son_folder)和另一个非空文件夹(称为not_empty_son_folder)的文件夹(称为parent_folder)和以下exports_sources方法:
仅导出 not_empty_son_folder。
柯南有没有办法强制在导出源方法中复制一个空文件夹?
c++ - 在 Travis-CI 上使用 Conan 和 Python3
我有一个使用 Travis-CI 和柯南的 C++ 项目。我在 Travis-CI 上构建的 Linux 在尝试下载 libcurl 时失败:
根据错误中的建议,我试图让 Travis 使用 Python3 来查看是否可以解决问题,但我没有运气。首先,我添加python3
了packages:
这样的内容:
但我收到与上述相同的错误。然后我尝试alias
了命令:
然而,我得到了同样的结果。
如何让 Travis-CI 将 python3 用于柯南?还是有另一种方法可以让我的conan install
命令起作用?
谢谢!
c++ - Cmakelists 与柯南
我在用柯南创建 Cmakelists 的过程中遇到了一些问题。我只是按照官方的例子,但它对我不起作用......
这是我的 Cmakefiles.txt :
我的错误是:
c++ - 在 MacOS 上构建 conan / cmake 项目时的相对 RPATH
我有一个简单的 C++ 项目,它依赖于 Intel TBB(需要使用共享库)。我正在尝试使用结合 CMake 的柯南包管理器来构建它,并且我已经能够使用此设置来毫无问题地添加非共享依赖项。
我的第一次尝试(结合柯南的 conanfile.txt 使用包的文档和柯南的 conanfile.py 参考指南中的信息)使用了conanfile.py
这样的方法:
和CMakeLists.txt
这样的:
(我src/main.cpp
的只是TBB 包的测试文件的直接副本)
这建得很好;
但是运行./build/bin/main
失败并出现此错误:
我在 MacOS 上,此错误类似于已知(但显然已修复)问题,因此我尝试从其自己的目录运行二进制文件;cd build/bin; ./main
,但看到同样的错误。我不确定为什么这不起作用,但我转向了另一种方法,没有花太多时间调试它。
接下来,我按照柯南文档的 RPATHs 指南的“不同方法”结束了这个:
和这个:
哪个构建甚至运行!但是当我检查可执行文件时,我看到它引用了/Users/me/.conan/data/TBB/2018_U6/conan/stable/package/03db91a62823ebc2b1df6e5cf549c2f674116656/lib
,这显然不是该代码应该做的(我期望看到@rpath/../lib
或类似的)。我还验证了二进制文件确实使用了这个路径,而不是放置在其兄弟lib
文件夹中的文件。
在这一点上,我被困住了。我可以看到 CMake 有一些 RPATH 处理选项,但看起来没有什么特别相关的,而且我不明白为什么我第二次尝试中的代码(直接取自柯南的文档)不起作用。
我需要做什么才能让共享库与柯南一起使用?(理想情况下是跨平台的,但至少在 MacOS 上)