:::success
Waring
这是一项实验性功能,可能会在将来的发行版中进行重大更改。
:::
当在具有多个功能互连的大型项目中工作时,建议避免使用一个单一的庞大项目方法,而要使用多个库,每个库都专门负责一组共同的任务,甚至由专门的团队来维护。 这种方法有助于隔离和重用代码,有助于缩短编译时间,并减少包含与所需库的API不对应的文件的可能性。
但是,在某些情况下,同时在多个库中工作并查看其中一个库中的更改如何传播到另一个库中很有用。 遵循本地工作流程,用户可以执行命令conan source
,conan install
,conan build
和conan package
,但是为了使用者更好的更改库,需要使用conan create
,它实际上会触发构建以生成 高速缓存中的二进制文件或运行conan export-pkg
将本地构建的工件复制到 conan本地缓存 中,并使它们对使用者可用。
使用可编辑包,您可以告诉Conan在哪里可以找到要在本地工作目录中使用的标头和工件。 无需打包。
让我们通过一个实例来了解此功能; 该代码可以在Conan示例存储库中找到:
$ git clone https://github.com/conan-io/examples.git
在项目examples/features/editable/cmake中,开发人员正在创建应用程序hello
,但与此同时,他们希望使用与应用程序紧密耦合的say/0.1@user/channel
库。say/0.1@user/channel
包已经在工作,开发人员将源保存在本地文件夹中,并且他们使用任何方法在本地进行构建和开发,并且可以执行 conan create . say/0.1@user/channel
创建软件包。
另外,对于应用程序hello
,有一个conanfile.txt(或更复杂的配方),其要求中包含say/0.1@user/channel
。 在构建此应用程序时,可以从Conan本地缓存中使用say
资源。