本文档翻译自:https://docs.conan.io/en/latest/creating_packages/existing_binaries.html#packaging-pre-built-binaries

    运行 build() 方法时,如果要打包的文件是本地文件,则不会产生任何附加值,因为无法复制从用户文件夹复制的文件。对于这种情况,直接运行conan export-pkg命令。
    仍然需要Conan配方,但非常简单,只包含软件包元信息。可以使用conan new命令创建基本配方:

    1. $ conan new hello/0.1 --bare

    这将在本地缓存中创建并存储以下包配方:

    1. class HelloConan(ConanFile):
    2. name = "hello"
    3. version = "0.1"
    4. settings = "os", "compiler", "build_type", "arch"
    5. def package(self):
    6. self.copy("*")
    7. def package_info(self):
    8. self.cpp_info.libs = self.collect_libs()

    提供的 package_info() 方法扫描包文件,为最终用户提供要链接的库的名称。可以进一步自定义此方法以提供其他构建标志 (通常取决于设置)。默认 package_info() 的应用如下: 它定义 “include” 文件夹中的头文件、 “lib” 文件夹中的库以及 “bin” 文件夹中的二进制文件。可以在 package_info() 方法中定义不同的包布局。
    还可以扩展此包配方,以支持更多配置 (例如,添加选项: shared/static,或使用不同的设置) 、添加依赖项 (requires) 等。
    基于以上所述,我们可以假设当前目录包含一个lib文件夹,其中包含此 “hello” 二进制库 libhello.a,例如与Windows MinGW (gcc) 版本 4.9 兼容:

    1. $ conan export-pkg . hello/0.1@myuser/testing -s os=Windows -s compiler=gcc -s compiler.version=4.9 ...

    仍然强烈建议在上传之前在本地测试包时使用test_package文件夹。由于我们不想从源代码构建包,因此流程为:

    1. $ conan new hello/0.1 --bare --test
    2. # customize test_package project
    3. # customize package recipe if necessary
    4. $ cd my/path/to/binaries
    5. $ conan export-pkg PATH/TO/conanfile.py hello/0.1@myuser/testing -s os=Windows -s compiler=gcc -s compiler.version=4.9 ...
    6. $ conan test PATH/TO/test_package/conanfile.py hello/0.1@myuser/testing -s os=Windows -s compiler=gcc -s ...

    对于任意数量的配置,可以重复最后两个步骤。