您的位置:首页 > 运维架构

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前面打勾。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: