与Visual Studio 2010静态libpng链接
我试图添加PNG支持到我的应用程序,因此我想包括libpng。我知道它需要zlib,因此我也下载了它。我进入了png文件夹/ projects/vstudio,然后我打开了解决方案。我编译它,它很好。我添加了一些头文件到我的应用程序中,并复制了lib文件。我的程序是一个用C++编写的dll,后来在C#中使用。当我用C#运行它时,它抱怨没有找到我的dll(如果我删除了png部分,它很好用)。我以前遇到过这个问题,通常意味着dll依赖项是错误的。
现在... libpng编译了一些.lib文件和一些.dll文件。该dll文件更大。我唯一的猜测是,它需要DLL文件,但我已经看到,人们可以链接到libpng没有DLL。
所以我的问题是:我如何编译libpng(和zlib的那个实例)到静态库中,我怎样才能将这些包含在我的项目中?我在互联网上搜索过,找不到任何有用的东西。与Visual Studio 2010静态libpng链接
为了使所有的库都是静态的,你必须重新编译一切“从零开始”作为静态库。
这只是意味着你应该建立在你的序列你有每个库的一组项目,输出类型设置为静态库。
之后,您应该消除库本身之间的库依赖关系(这意味着您应该将某些项目的输出链接到另一个项目,例如如果您的“libpng”库使用“libzip”,这意味着您应该先编译“libzip”和链接输出(静态库)到你的“的libpng”项目。
在快结束的时候,你将有一个大集编译平台,你可以在你的项目中使用静态库的。
另外要提一下,请仔细阅读Google搜索。我确定有人有这样做,你可能需要为你的平台下载一个.lib文件包(我知道“dev”库包只包含一个导入库与适当的.dll配对文件,但有很多像你这样的爱好者:)
真正重新编译这个东西并不难 - 创建一个项目,添加所有文件。没有更多的问题与不同的运行时版本或类似的东西。 – sharptooth 2010-06-02 10:59:54
那么,尝试通过“创建项目和添加文件”来完全构建'gtkmm';)*有时候所有这些内部依赖关系都可能成为真正的屁股疼痛* – 2010-06-02 11:05:16
也许,但是我们毫无麻烦地构建zlib和SQLite。 – sharptooth 2010-06-02 12:41:04