我有一个使用libusb作为conan依赖项的项目。对于大多数编译(Windows和Linux),只使用静态库就足够了,但是要将这个项目从Linux交叉编译到OSX,它需要.dylib和.a文件。当我使用依赖项运行conan install时,如果我将shared属性设置为true,它会将--enable-shared --disable-static附加到配置过程,如果我将它设置为false,它将设置--disable-shared --enable-static。
在Conan中有没有什么方法可以直接影响configure命令(我已经尝试过了,这可以确保在编译库的过程中创建这两个文件)。
发布于 2021-02-15 04:38:05
我最初开发了Conan包,从那时起,社区对它进行了很大的改进。
简短的回答是否定的。为什么?开发Conan包是为了将所有项目的共享库与静态库分开。每个包都有一个特定的包ID,并且它们在库方面没有混合。这是一个包装设计,而不是柯南的理智规则。
如果你的项目同时使用了这两个库,我会说有些地方确实出了问题,应该修复,而不是寻找包解决方案,这可能会比修复真正的问题花费更多的时间。
但是如果你找不到解决方案,你可以使用Deploy生成器,将两个库下载到文件夹中,并从该文件夹中配置您的项目消费。
影响Conan使用相同的包引用,但它的设计不允许不同的选项。另一种选择是派生原始项目并删除这些选项,然后添加一个新选项" both ",其中两个选项都存在。请记住,“两者”都不会被接受为官方选项。
https://stackoverflow.com/questions/66181702
复制相似问题