腹针引气归元:MinGW与编译libcurl(附加openssl,zlib,libssh)

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 13:06:52
一、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
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前面打勾。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/long458/archive/2010/03/22/5402888.aspx