本文档翻译自:https://docs.conan.io/en/latest/using_packages/conanfile_txt.html#imports

    Linux (.so)、Windows (.dll)和MacOS (.dylib)上的动态链接库有一些不同。动态链接库必须位于链接器或操作系统运行时可以找到它们的文件夹中。
    您可以将库的文件夹目录添加到环境变量中(Linux中的 LD_LIBRARY_PATH 环境变量,OSX中的 DYLD_LIBRARY_PATH 或Windows中的 *system PATH
    ),或者将这些动态链接库复制到操作系统可以找到的某个系统文件夹中。这些操作在程序部署的时候需要,但是在开发调试的时候不需要。Conan是为开发人员设计的,因此它避免了修改系统环境的这种操作。

    在Windows和OSX中,最简单的方法是将动态链接库复制到可执行文件中,这样它们就可以被可执行文件找到,而无需修改路径。

    这可以使用conanfile.txt中的[import]部分完成的。

    为了演示这一点,编辑conanfile.txt文件并粘贴以下[import]部分:

    1. [requires]
    2. poco/1.9.4
    3. [generators]
    4. cmake
    5. [options]
    6. poco:shared=True
    7. openssl:shared=True
    8. [imports]
    9. bin, *.dll -> ./bin # Copies all dll files from packages bin folder to my "bin" folder
    10. lib, *.dylib* -> ./bin # Copies all dylib files from packages lib folder to my "bin" folder


    :::info Note
    您可以浏览本地缓存中的package文件夹(~/.conan/data),查看动态链接库的位置。通常 *.dll 被复制到 /bin 中。其余的库应该在 /lib 文件夹中找到,这是比较常用的做法,依据项目自定义也可以。 :::

    安装需求(从构建文件夹),并再次运行二进制文件:

    1. $ conan install ..
    2. $ ./bin/md5

    现在查看 build/bin 文件夹是否有所需的动态链接库。
    正如您所看到的,[import] 部分是将文件从需求导入到项目的一种非常通用的方式。
    这种方法可以用于打包应用程序并将结果的可执行文件复制到bin文件夹,或者用于复制资产、图像、声音、测试静态文件等。Conan是一个包管理的通用解决方案,不仅是针对C/C++库.

    :::info See alse
    要了解更多使用动态链接库的信息,请参阅 如何管理动态链接库 :::