本文档翻译自:https://docs.conan.io/en/latest/creating_packages/getting_started.html#creating-and-testing-packages
您只需运行以下命令,即可使用我们的默认设置创建和测试包:

  1. $ conan create . demo/testing
  2. ...
  3. Hello world Release!

如果显示 “Hello world Release!”,它就起作用了。

conan create 命令执行以下操作:

  • 将conanfile.py从用户文件夹复制到本地缓存 (用Conan术语 “export”)。
  • 安装包,强制从源代码构建它。
  • 移动到 test_package 文件夹并创建一个临时 构建 文件夹。
  • 执行conan install ..,以安装test_package/conanfile.py的要求。请注意,它将从源代码构建 “hello”。
  • 构建并启动示例消费应用程序,分别调用 test_package/conanfile.py build()test() 方法。

使用Conan命令,conan create命令将等同于:

  1. $ conan export . demo/testing
  2. $ conan install hello/0.1@demo/testing --build=hello
  3. # package is created now, use test to test it
  4. $ conan test test_package hello/0.1@demo/testing

conan create命令接收与conan install相同的命令行参数,因此您可以将相同的设置、选项和命令行开关传递给它。如果要为不同的配置创建和测试包,可以:

  1. $ conan create . demo/testing -s build_type=Debug
  2. $ conan create . demo/testing -o hello:shared=True -s arch=x86
  3. $ conan create . demo/testing -pr my_gcc49_debug_profile
  4. ...
  5. $ conan create ...

省略 user/channel

:::success Waring
这是一个实验特性,在未来的版本中会有突破性的变化。 :::

您可以创建一个省略 user/channel 的包:

  1. $ conan create .

要引用该包,您还必须省略 user/channel。

Examples

  • 在你的配方中指定要求:

    1. class HelloTestConan(ConanFile):
    2. settings = "os", "compiler", "build_type", "arch"
    3. requires = "packagename/1.0"
    4. ...


  • 安装单个包。使用 conan install 我们必须使用 packagename/1.0@ 的语法 (始终有效) 来消除参数的歧义,该参数也可用于指定路径:

    1. $ conan install packagename/1.0@


  • 搜索引用的二进制包。conan search 命令需要使用 packagename/1.0@ 的语法 (始终有效) 来消除用法歧义: ```shell $ conan search packagename/1.0@

Existing packages for recipe packagename/1.0:

Package_ID: 9bfdcfa2bb925892ecf42e2a018a3f3529826676 [settings] arch: x86_64 build_type: Release compiler: gcc compiler.libcxx: libstdc++11 compiler.version: 7 os: Linux Outdated from recipe: False

  1. - 移除包:
  2. ```shell
  3. $ conan remove packagename/1.0@
  • 上传包:
    1. $ conan upload packagename/1.0@