如何在conan包中包装外部库,添加对构建为共享库的支持

时间:2016-06-01 22:47:04

标签: c++ cmake conan

我正在尝试将Google的Gumbo解析器包装为Conan包。 我大部分都成功支持Linux Mac和Windows,但我在创建(和使用)它作为Windows(.dll + .lib)中的共享库时遇到了一些问题。

我目前的进展是here。 我决定绕过Gumbo的autoconf构建系统,提供我在获取源时复制的CMakeLists.txt。这样我希望能够完全支持Windows。

我对Visual C ++不太熟悉,但据我所知,Visual C ++与其他编译器不同,默认情况下它不导出符号,Gcc和Clang导出所有内容。

这导致我的Conan软件包在某些情况下无法构建,因为在共享模式下它只生成.dll(并且没有相应的.lib)。

尝试使用CMake的GENERATE_EXPORT_HEADER模块,但它没什么帮助,因为那时我必须实际使用它应该导出的方法中生成的宏。但我只是试图包装库而不必分叉和调整它。

另一种选择是使用.def file。这可能适用于这种情况(不是要导出的许多符号),但它对我来说不是很有帮助(更难测试我是否实际导出了我应该拥有的所有东西,更难维护,对于解决同样的问题不是很有帮助)其他需要输出更多符号的情况。)

有推荐的方法吗?

0 个答案:

没有答案