user-0 提问: 在windows平台上怎么编译LIBGD图形库

回复:
user: user-0
content: 引用 3 楼 vipcxj 的回复:如果没有提供CMakeList.txt文件，那就想都别想，何况有了CMake，根本不需要mingw，直接编译成VS工程就是了。如果没CMake，下个msys，使用和linux平台相同的方式，使用mingw编译工程也可以。 http://eucaly61.blogspot.com/2009/03/msys-mingw-windows-gnu.html 随便搜了一下，虽然不是你这个库，但也是其他linux平台下的库用msys和mingw编译的  可以简单的说下怎么用CMAKE编译么??还有你给的地址打不开哦....

user: user-1
content: 使用#pragma comment和在项目属性里设置效果是一样的，估计你项目设置有问题吧~

user: user-0
content: 引用 10 楼 vipcxj 的回复:[quote=引用 9 楼 yxyy3604 的回复:] [quote=引用 7 楼 vipcxj 的回复:] 你zlib没搞好吧，zlib也可以生成dll的吧，windows平台上一般是.lib/.dll.a加上一个.dll文件，因为vs的工程貌似一般都是先包含了lib，由lib辅助链接dll文件的 现在已经搞定了,需要在libgd库的gd_gd2.c文件里面加一句#pragma comment(lib, "./zlib.lib")   这个用于指定zlib.lib的位置，这样在vs编译的时候才能连接成功。[/quote] ... 看来你不常用类库，我一般第一件事就是把项目的头文件保护路径，类库路径设置好，链接选项里记得好像是输入选项来着，这里第一行就能指定要链接的lib文件。当然很多类库lib文件实在太多了，我就先编译，如果出现链接错误，再需要包含哪个lib，然后再项目属性里包含。[/quote]我之前也向你说的那样试过，可是不好使，后来看了这个帖子才知道的。http://blog.csdn.net/htttw/article/details/7616124

user: user-1
content: 不用pragma comment的好处是便于移植，因为linux平台下可没有等价的命令

user: user-1
content: 引用 9 楼 yxyy3604 的回复:[quote=引用 7 楼 vipcxj 的回复:] 你zlib没搞好吧，zlib也可以生成dll的吧，windows平台上一般是.lib/.dll.a加上一个.dll文件，因为vs的工程貌似一般都是先包含了lib，由lib辅助链接dll文件的 现在已经搞定了,需要在libgd库的gd_gd2.c文件里面加一句#pragma comment(lib, "./zlib.lib")   这个用于指定zlib.lib的位置，这样在vs编译的时候才能连接成功。[/quote] ... 看来你不常用类库，我一般第一件事就是把项目的头文件保护路径，类库路径设置好，链接选项里记得好像是输入选项来着，这里第一行就能指定要链接的lib文件。当然很多类库lib文件实在太多了，我就先编译，如果出现链接错误，再需要包含哪个lib，然后再项目属性里包含。

user: user-0
content: 引用 7 楼 vipcxj 的回复:你zlib没搞好吧，zlib也可以生成dll的吧，windows平台上一般是.lib/.dll.a加上一个.dll文件，因为vs的工程貌似一般都是先包含了lib，由lib辅助链接dll文件的 现在已经搞定了,需要在libgd库的gd_gd2.c文件里面加一句#pragma comment(lib, "./zlib.lib")   这个用于指定zlib.lib的位置，这样在vs编译的时候才能连接成功。

user: user-2
content: 引用 6 楼 yxyy3604 的回复:[quote=引用 5 楼 jiandingzhe 的回复:] [quote=引用 2 楼 yxyy3604 的回复:] [quote=引用 1 楼 wangliangffaflgh 的回复:] http://download.csdn.net/detail/zxwangyun/4123767 我是说如何把libgd的源文件编译成库,不过还是谢谢你哦[/quote] 1：创建一个目录。 2：在目录里运行cmake XXXX/XXXX/XXX。后面那个是你源代码的根目录，目录里应当有CMakeLists.txt文件。默认情况下好像是生成makefile的。 或者用CMake-gui: 1：创建一个目录。 2：在目录里运行cmake-gui XXXX/XXXX/XXX。会弹出一个窗口，先问你toolchain是什么，然后列出所有的cmake配置变量让你修改。先点configure，再多点几次configure，再点生成。如果有错误，会有红色的显示。[/quote]  你说的这些我已经做过了,使用CMAKE 生成了VS2010的工程,然后编译工程,但是没有生成DLL文件,检查之后发现是没有ZLIB库.然后又下载zilb的1.2.8版本,照旧使用CMAKE产生工程,然后编译.将编译好的ZILB加进LIBGD的工程之后再次编译,结果还是没有产生DLL文件,错误信息如下: 2>     正在创建库 C:/Users/Administrator/Desktop/LibGD/libgd/Bin/Release/libgd.lib 和对象 C:/Users/Administrator/Desktop/LibGD/libgd/Bin/Release/libgd.exp 2>gd_gd2.obj : error LNK2019: 无法解析的外部符号 _uncompress，该符号在函数 __gd2ReadChunk 中被引用 2>gd_gd2.obj : error LNK2019: 无法解析的外部符号 _compress，该符号在函数 __gdImageGd2 中被引用 2>C:\Users\Administrator\Desktop\LibGD\libgd\Bin\Release\libgd.dll : fatal error LNK1120: 2 个无法解析的外部命令 这两个没有找的函数在zlib.h文件里面声明了，而且在zlib的源文件里面也有实现，但是不知道为什么就是链接不成功。[/quote] 你看看CMakeCache.txt，或者用cmake-gui看看配置，zlib的库是否被cmake包括进去了。 windows我不怎么熟。

user: user-1
content: 你zlib没搞好吧，zlib也可以生成dll的吧，windows平台上一般是.lib/.dll.a加上一个.dll文件，因为vs的工程貌似一般都是先包含了lib，由lib辅助链接dll文件的

user: user-0
content: 引用 5 楼 jiandingzhe 的回复:[quote=引用 2 楼 yxyy3604 的回复:] [quote=引用 1 楼 wangliangffaflgh 的回复:] http://download.csdn.net/detail/zxwangyun/4123767 我是说如何把libgd的源文件编译成库,不过还是谢谢你哦[/quote] 1：创建一个目录。 2：在目录里运行cmake XXXX/XXXX/XXX。后面那个是你源代码的根目录，目录里应当有CMakeLists.txt文件。默认情况下好像是生成makefile的。 或者用CMake-gui: 1：创建一个目录。 2：在目录里运行cmake-gui XXXX/XXXX/XXX。会弹出一个窗口，先问你toolchain是什么，然后列出所有的cmake配置变量让你修改。先点configure，再多点几次configure，再点生成。如果有错误，会有红色的显示。[/quote]  你说的这些我已经做过了,使用CMAKE 生成了VS2010的工程,然后编译工程,但是没有生成DLL文件,检查之后发现是没有ZLIB库.然后又下载zilb的1.2.8版本,照旧使用CMAKE产生工程,然后编译.将编译好的ZILB加进LIBGD的工程之后再次编译,结果还是没有产生DLL文件,错误信息如下: 2>     正在创建库 C:/Users/Administrator/Desktop/LibGD/libgd/Bin/Release/libgd.lib 和对象 C:/Users/Administrator/Desktop/LibGD/libgd/Bin/Release/libgd.exp 2>gd_gd2.obj : error LNK2019: 无法解析的外部符号 _uncompress，该符号在函数 __gd2ReadChunk 中被引用 2>gd_gd2.obj : error LNK2019: 无法解析的外部符号 _compress，该符号在函数 __gdImageGd2 中被引用 2>C:\Users\Administrator\Desktop\LibGD\libgd\Bin\Release\libgd.dll : fatal error LNK1120: 2 个无法解析的外部命令 这两个没有找的函数在zlib.h文件里面声明了，而且在zlib的源文件里面也有实现，但是不知道为什么就是链接不成功。

user: user-2
content: 引用 2 楼 yxyy3604 的回复:[quote=引用 1 楼 wangliangffaflgh 的回复:] http://download.csdn.net/detail/zxwangyun/4123767 我是说如何把libgd的源文件编译成库,不过还是谢谢你哦[/quote] 1：创建一个目录。 2：在目录里运行cmake XXXX/XXXX/XXX。后面那个是你源代码的根目录，目录里应当有CMakeLists.txt文件。默认情况下好像是生成makefile的。 或者用CMake-gui: 1：创建一个目录。 2：在目录里运行cmake-gui XXXX/XXXX/XXX。会弹出一个窗口，先问你toolchain是什么，然后列出所有的cmake配置变量让你修改。先点configure，再多点几次configure，再点生成。如果有错误，会有红色的显示。

user: user-1
content: 如果没有提供CMakeList.txt文件，那就想都别想，何况有了CMake，根本不需要mingw，直接编译成VS工程就是了。如果没CMake，下个msys，使用和linux平台相同的方式，使用mingw编译工程也可以。 http://eucaly61.blogspot.com/2009/03/msys-mingw-windows-gnu.html 随便搜了一下，虽然不是你这个库，但也是其他linux平台下的库用msys和mingw编译的

user: user-0
content: 引用 1 楼 wangliangffaflgh 的回复:http://download.csdn.net/detail/zxwangyun/4123767 我是说如何把libgd的源文件编译成库,不过还是谢谢你哦

user: user-3
content: http://download.csdn.net/detail/zxwangyun/4123767