MinGW与编译libcurl(附加openssl,zlib,libssh)
2010-03-22 00:31
543 查看
一、MinGW的安装与配置
到http://sourceforge.net/projects/mingw/ 手动去下载最新的MinGW,或使用MinGW-5.1.4.exe,自动下载。但后者往往不能下载到最新的稳定包。
1、手动下载说明,参见:http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
可从:http://sourceforge.net/projects/mingw/ 选择包下载。
2、运行 MinGW-5.1.4.exe 的话,选择 Candidate,一般会下载最新的包,选择如下几项:
MinGW base tools
g++ compiler
MingGW Make
默认路径C:/MinGW,我装在 D:/cplusplus/mingw
根据:http://wiki.codeblocks.org/index.php?title=MinGW_installation,需要下载如下必要的包:
* http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz
* http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz
* http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz
* http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz
另外一个是调试器:
* http://prdownloads.sf.net/mingw/gdb-6.3-2.exe
安装完后就配置环境变量吧。
控制面板--〉系统--〉系统详细设置--〉环境变量
MINGW_PATH=D:/cplusplus/mingw
C_INCLUDE_PATH=%MINGW_PATH%/include;%MINGW_PATH%/lib/gcc/mingw32/3.4.5/include
CPLUS_INCLUDE_PATH=%MINGW_PATH%/include/c++/3.4.5;%MINGW_PATH%/include/c++/3.4.5/mingw32;%MINGW_PATH%/include/c++/3.4.5/backward;%C_INCLUDE_PATH%
LIBRARY_PATH=%MINGW_PATH%/lib;%MINGW_PATH%/lib/gcc/mingw32/3.4.5
PATH=%MINGW_PATH%/bin;%MINGW_PATH%/libexec/gcc/mingw32/3.4.5
注意:上面的很多3.4.5这个是gcc的版本号,要以真实的文件夹为准。
现在开一个CMD吧
输入g++ --version
看到以下信息的话就成功一半了。
g++ (GCC) 3.4.5 (mingw special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
继续新建一个test.cpp文件
内容如下
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
cout << "Yeah, MinGW!" << endl;
return 0;
}
在cmd下面输入编译命令
g++ -o test test.cpp
这次是什么都没看到就是成功了。
接着输入test.exe
看见以下的信息了么
Yeah, MinGW!
现在,可以在XP下面编写你的C或者C++程序了。
二、编译libcurl(附加openssl,zlib,libssh)
1
openssl-0.9.8m目录把out32dll复制一份改名为out,并把ssleay32.lib/dll改名为ssl32.lib/dll
libssh2-1.2.4把win32/Release_dll里的libssh2.lib和libssh2.dll复制一份到win32目录
zlib-1.2.4把projects/visualc6/Win32_DLL_Release里的zlib1.lib和zlib1.dll复制一份到zlib-1.2.4目录并改名为z.lib和z.dll
2代码改错
libssh2-1.2.4/src/session.c中添加typedef int socklen_t;
libssh2-1.2.4/src/misc.c中把unsigned long long改为unsigned long,并把10ULL改为10
curl-7.20.0.gz/lib/ssh.c中把#ifdef HAVE_LIBSSH2_KNOWNHOST_API - #endif屏蔽
3
打开DOS,进入curl-7.20.0.gz/lib目录
set ZLIB_PATH=C:/zlib-1.2.4
set OPENSSL_PATH=C:/openssl-0.9.8m
set LIBSSH2_PATH=C:/libssh2-1.2.4
mingw32-make -f Makefile.m32 SSL=1 SSH2=1 ZLIB=1
编译Demo的Release版本时要在setting->link->General->generate debug info 或者 link incrementally前面打勾。
到http://sourceforge.net/projects/mingw/ 手动去下载最新的MinGW,或使用MinGW-5.1.4.exe,自动下载。但后者往往不能下载到最新的稳定包。
1、手动下载说明,参见:http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite
可从:http://sourceforge.net/projects/mingw/ 选择包下载。
2、运行 MinGW-5.1.4.exe 的话,选择 Candidate,一般会下载最新的包,选择如下几项:
MinGW base tools
g++ compiler
MingGW Make
默认路径C:/MinGW,我装在 D:/cplusplus/mingw
根据:http://wiki.codeblocks.org/index.php?title=MinGW_installation,需要下载如下必要的包:
* http://prdownloads.sf.net/mingw/gcc-core-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/gcc-g++-3.4.5-20060117-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw-runtime-3.9.tar.gz
* http://prdownloads.sf.net/mingw/mingw-utils-0.3.tar.gz
* http://prdownloads.sf.net/mingw/w32api-3.6.tar.gz
* http://prdownloads.sf.net/mingw/binutils-2.17.50-20060824-1.tar.gz
* http://prdownloads.sf.net/mingw/mingw32-make-3.81-1.tar.gz
另外一个是调试器:
* http://prdownloads.sf.net/mingw/gdb-6.3-2.exe
安装完后就配置环境变量吧。
控制面板--〉系统--〉系统详细设置--〉环境变量
MINGW_PATH=D:/cplusplus/mingw
C_INCLUDE_PATH=%MINGW_PATH%/include;%MINGW_PATH%/lib/gcc/mingw32/3.4.5/include
CPLUS_INCLUDE_PATH=%MINGW_PATH%/include/c++/3.4.5;%MINGW_PATH%/include/c++/3.4.5/mingw32;%MINGW_PATH%/include/c++/3.4.5/backward;%C_INCLUDE_PATH%
LIBRARY_PATH=%MINGW_PATH%/lib;%MINGW_PATH%/lib/gcc/mingw32/3.4.5
PATH=%MINGW_PATH%/bin;%MINGW_PATH%/libexec/gcc/mingw32/3.4.5
注意:上面的很多3.4.5这个是gcc的版本号,要以真实的文件夹为准。
现在开一个CMD吧
输入g++ --version
看到以下信息的话就成功一半了。
g++ (GCC) 3.4.5 (mingw special)
Copyright (C) 2004 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
继续新建一个test.cpp文件
内容如下
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
cout << "Yeah, MinGW!" << endl;
return 0;
}
在cmd下面输入编译命令
g++ -o test test.cpp
这次是什么都没看到就是成功了。
接着输入test.exe
看见以下的信息了么
Yeah, MinGW!
现在,可以在XP下面编写你的C或者C++程序了。
二、编译libcurl(附加openssl,zlib,libssh)
1
openssl-0.9.8m目录把out32dll复制一份改名为out,并把ssleay32.lib/dll改名为ssl32.lib/dll
libssh2-1.2.4把win32/Release_dll里的libssh2.lib和libssh2.dll复制一份到win32目录
zlib-1.2.4把projects/visualc6/Win32_DLL_Release里的zlib1.lib和zlib1.dll复制一份到zlib-1.2.4目录并改名为z.lib和z.dll
2代码改错
libssh2-1.2.4/src/session.c中添加typedef int socklen_t;
libssh2-1.2.4/src/misc.c中把unsigned long long改为unsigned long,并把10ULL改为10
curl-7.20.0.gz/lib/ssh.c中把#ifdef HAVE_LIBSSH2_KNOWNHOST_API - #endif屏蔽
3
打开DOS,进入curl-7.20.0.gz/lib目录
set ZLIB_PATH=C:/zlib-1.2.4
set OPENSSL_PATH=C:/openssl-0.9.8m
set LIBSSH2_PATH=C:/libssh2-1.2.4
mingw32-make -f Makefile.m32 SSL=1 SSH2=1 ZLIB=1
编译Demo的Release版本时要在setting->link->General->generate debug info 或者 link incrementally前面打勾。
相关文章推荐
- 使用mingw 对libcURL,openSSL,zLib交叉编译
- 在Linux下使用MinGW静态交叉编译带有zlib的libcurl(包括交叉编译openssl,即--cross-compile-prefix=i686-w64-mingw32- mingw)
- 使用mingw 对libcURL,openSSL,zLib交叉编译
- vs2010 libcurl 7.21.3 zlib 1.2.5 openssl 1.0.0c 编译全过程
- 编译 libcurl 7.45.0 + zlib 1.2.8 + openssl 1.0.2d
- libcurl-7.54.1附加zlib1.2.11的编译
- Windows 编译libcurl(openssl+zlib)(使用VC编译)
- MinGW编译支持openssl-1.0.0a的libcurl-7.21.3
- 使用mingw编译支持openssl 的 libcurl(windows下)
- 编译 libcurl 7.45.0 + zlib 1.2.8 + openssl 1.0.2d
- vs2010 libcurl 7.21.3 zlib 1.2.5 openssl 1.0.0c 编译全过程
- windows & gcc & mingw & mysy 编译 openssl
- Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)
- win7平台下MinGW编译openssl
- 如何为visual studio各个版本编译对应的libcurl和openssl
- MinGW 编译zlib、libpng、libjpeg等
- 可用:zlib-1.2.11.tar+openssl-1.0.2l.tar+curl-7.54.1.tar纯静态编译
- mingw编译protobuf和openssl
- 在window平台下,自己DIY编译OpenSSL,Libcurl ,来支持HTTPS传输协议
- 利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用