名侦探柯南.IO头唯一的包
conan.io - header only package
我正在尝试创建一个简单的演示头仅库名为foo,并要求它的另一个库名为bar。
foo的结构如下:foo/include/foo.hpp -只是一个测试头文件…
foo/conanfile.py
from conans import ConanFile, CMake
class FooConan(ConanFile):
name = "foo"
version = "0.0.1"
exports = "*"
导出:
conan export steazzalini/testing
酒吧/conanfile.txt
[requires]
foo/0.0.1@steazzalini/testing
[generators]
cmake
conan install failed:
ERROR: Can't find a 'foo/0.0.1@steazzalini/testing' package for the specified options and settings
- Try to build from sources with "--build foo" parameter
- If it fails, you could try to contact the package author , report your configuration and try to collaborate to support it.
Package configuration:
- Settings:
- Options:
提前感谢您的帮助!
只是一个小小的澄清,我猜你的意思是库foo是bar所需要的。
必须创建每个包,即使它只是一个头库。当您使用conan export
时,它将源代码复制到配方中(另一种替代方法是使用source()
方法检索源代码),但是仍然必须创建包。
build()
方法不是必需的,因为没有什么要构建的,但是您应该将package()
方法添加到您的配方中,如:
def package(self):
self.copy("*.h", dst="include", src="include")
然后你必须创建这个包。这可以通过几种方法完成,其中一种方法是安装foo包:
$ conan install foo/0.0.1@steazzalini/testing --build
但这通常是不必要的,因为您也可以在从消费者项目调用安装时构建它(栏一个):
$ conan install . --build
还有一个选项,build_policy
可以添加到菜谱中,并且非常适合头文件库。missing
或always
。后者在从项目的最新git (master/head..)提交创建包时非常有用。使用此策略,消费者不必显式调用--build
来指定必须创建包。所以配方可以是这样的:
from conans import ConanFile, CMake
class FooConan(ConanFile):
name = "foo"
version = "0.0.1"
exports = "*"
build_policy = "missing"
def package(self):
self.copy("*.h", dst="include", src="include")
最后,您可能会对$ conan new foo/0.0.1@steazzalini/testing -i
命令感兴趣,它将为您创建一个conanfile.py
,其中包含一些内容。该命令的-t
选项可用于创建test_package
(用于创建和测试包的实用程序),以确保包是正确的。看看http://docs.conan.io/en/latest/packaging/testing.html#automatically-creating-and-testing-packages
更新:conan文档得到了一个专门针对头文件库的新章节:http://docs.conan.io/en/latest/howtos/header_only.html
- Seg Fault Issue C++ (file IO / getline)
- 何时在引用或唯一指针上使用移动语义
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- C++优先级队列,按对象的唯一指针的特定方法升序排列
- 计算排序向量的向量中唯一值的计数
- 为什么在读取文件大小时文件IO速度会发生变化
- 如何使用Visual Studio 2017在C++中为参数化对象数组使用唯一指针
- 通过组合不同的类型来创建唯一的id
- 使用Unique_ptr确保工厂中的对象唯一
- c++多进程编写一个唯一的文件
- 在以唯一ptr为值的C++映射中,动态内存何时会被销毁
- 如何更改唯一指针向量的可见性
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 共享指针和具有自定义删除程序的唯一指针之间的语法差异背后的任何原因
- C++尝试深度复制唯一指针时出现内存访问冲突
- 具有引用成员的结构是否具有唯一的对象表示形式
- Agora.io 虚幻引擎插件构建错误
- 使用 RTTI 克隆唯一指针的向量
- 如何在 c++ 中迭代数组中的唯一元素
- 名侦探柯南.IO头唯一的包