建立静态库的困难

所以我一直在尝试构建libarchive几天,遵循本指南和其他许多线程:https://github.com/libarchive/libarchive/wiki/BuildInstructions

我想要一个支持LZMA,zlib和bzip2的静态库。 我也得到了这些静态版本(lib的)

我只是不能让它正常工作。 我曾使用CMAKE为VS2010和NMAKE生成make文件。 有了这两个选项,事情编译得很好,但是当我尝试使用生成的archive_static.lib时,在我的项目中,我得到了大量未解决的外部事件。 编译.dll版本的库工作时没有未解决的外部问题,但它开始询问zlib.dll,bzip2.dll等,我没有和不想使用。

我想我需要用cmake设置一些标志,但我不知道该怎么做。

任何帮助是极大的赞赏。 http://www.libarchive.org/


我不能确定这是否发生在这里,但请记住,将二进制文件链接到静态库时,其外部依赖关系不一定会嵌入到其中,这意味着您可能需要提供静态库,其上你的程序通过libarchive间接依赖你的情况,即LZMA,zlib和bzip2。

此外,当涉及到链接静态和动态时,在窗口上会出现一些混淆,因为在这两种情况下,您都提供了一个.lib文件,因此很容易混淆并且提供动态链接的.lib而不是静态版本。 如果你这样做,链接器可能会拒绝链接你的程序(特别是在增强时),或者可能链接正常,然后在执行时,操作系统将需要相应的.dll文件。

链接地址: http://www.djcxy.com/p/64379.html

上一篇: Difficulties building static library

下一篇: Creating shared and static libraries using g++ (under Windows)