20070130 windows linux c 编程

msys + MinGW + wxWidgets
1. Download MinGW-5.0.2.exe(129k) from sf/mingw
2. Run MinGW-5.0.2.exe, select module(mingw + gcc)
3. The setup program will download what you want automatically from Internet to the directory where the program located, then install those packages automatically to complete install. The package downloaded is below:
mingw-runtime.3.9.tar.gz
w32api-3.6.tar.gz
binutils-2.15.91-20040904-1.tar.gz
gcc-core-3.4.2-20040916-1.tar.gz
gcc-g++-3.4.2-20040916-1.tar.gz
mingw32-make-3.8.0-3.tar.gz

4. Download msys-1.0.10.exe(2742k) from sf/mingw
5. Run msys-1.0.10.exe, then select y,and specify the direcory of mingw.
6. Modify msys.bat to change some font setting.

7. Download wxWidgets-2.6 from wxWidgets.org
8. Enter msys, then execute below command to get wx inc an lib.
$ ./configure –enable-unicode –disable-shared
$ make
$ make install
9. But the sample program compiled with lib above has to be run with mingw10.dll in mingw/bin. That is because of thread module. Two approaches can be done to erase the dependency.
    First, re-configure the makefile.
        $ ./configure –enable-unicode –disable-shared –disable-threads
    Second, Modifying the makefile file manually
       remove all "-mthreads" in makefile
10. Maybe there is an error about ld for lacking of wx lib path. In makefile make LIBDIRNAME = /usr/local/lib to add lib path
11. If the above description can not make any effort, using below command to re-make wx.
    $ make clean
    $ ./configure –enable-unicode –disable-shared –disable-threads
    $ make
    $ make install

[Windows] windows上搭建linux开发环境(zz)
这里所说的开发环境主要是指在windows上使用GCC(GNU Compiler Collection)进行开发,根据需求的不同,我们有以下几种选择:

1. DevC++

这是一款基于MingW的集成开发环境(IDE),适合于C++初学者,可以利用它编写符合标准C++(98)规范的代码,体验GCC的一些特性。

DevC++非常小巧,由Bloodshed Software开发,属于Free Software。
DevC++的最新版本为:DevC++ 5.0 beta9.2(4.9.9.2) with MingW/GCC 3.4.2
DevC++的官方站点为:http://www.bloodshed.net

2. MinGW

MinGW,即Minimalist GNU for Windows,它是GNU工具集(主要是GCC)在Windows上的一个移植,通过它我们可以使用GCC来开发Win32程序。

MinGW是基于命令行的,对于初学者,使用命令行来开发有助于了解其中的细节。不过,如果你不习惯命令行的话,那么也可以选择IDE。前面提到的 DevC++便是对MinGW的一个GUI包装(界面用Delphi开发,在DevC++的安装目录下便能找到MinGW工具包),另外还有一款名为MinGW Developer Stuidio的IDE,它完全效仿了VC6的界面,对于熟悉VC6的朋友来说应该能够很快上手。

不少跨平台的开源软件在Windows上便是以MinGW为编译工具,比如大名鼎鼎的MPlayer。

MinGW的官方站点为:http://www.mingw.org

3. Cygwin

Cygwin由Cygnus公司开发,与MinGW相比,它是一个庞然大物,因为它企图在Windows上搭建整个Linux平台。Cygwin包含两个部分,首先是cygwin1.dll,它是对Linux API的一个模拟,其次是Linux工具集,包含GCC、vi以及grep等几乎所有常用工具。因此,选择Cygwin,我们不仅能使用GCC,更能学习Linux的命令工具。

Cygwin的官方站点为:http://www.cygwin.com

Cygwin的安装和使用方法为:
1) 到官方站点下载setup.exe程序;
2) 运行setup.exe,根据自己需要,可以选择从网络下载并安装或者只下载不安装。Cygwin的默认安装并不包含GCC工具,因此必须自己设置。在进行到“Select Packages”一步时,展开Devel Category,可以看到gcc package的状态为Skip,单击它,Skip将切换成最新的版本号,表示我们将安装它。如果我们要安装所有package,可以单击Category后面的Default标签,其文字将变成Install。编辑工具vi默认也不会被安装,它位于Editors Category目录下。怎样确定我们要安装的工具位于哪个Category下呢?方法是打开Cygwin下载目录(名称类似于ftp%3a%2f%2fcygwin.osuosl.org%2fpub%2fcygwin)下的setup.ini文件,查找@ tool_name(注意:@后面有一空格),比如gcc应查找@ gcc,在其中的描述信息中便包含了工具所属的Category。Cygwin很庞大,如果全部安装的话,听说需要大概4G的空间。
3) 安装完毕后,桌面上将出现一个快捷方式,运行它即可进入虚拟的linux工作环境。另外,我们也可将cygwin安装目录下的bin文件夹所在路径添加到系统PATH环境变量中,这样就可以直接在控制台中使用cygwin下的命令工具,比如运行g++等。

4) Telnet

通过telnet远程登录linux主机,这不同于前面提到的三种方法,因为它其实是在直接使用linux系统。当项目组有多个成员都需要进行linux 开发的时候,我们便可以搭建一个linux工作站,然后开发成员通过telnet到工作站上进行工作。对于大多数时候使用windows偶尔使用 linux的开发人员来说这是一个不错的选择。telnet工具可以使用STEM或者其它类似工具
 经验交流:怎样在 Windows 上建立与在 Linux 上相同的开发环境    
 

事先声明,这篇 HOWTO 只是出于个人兴趣,如果您觉得无聊,请不要浪费您的时间跟帖,谢谢。

目前,由于工作原因,我只能在 Windows 上做程序开发。离开了我所熟悉的 Linux 开发环境,以前做 Linux 程序员时的良好感觉荡然无存。比如我一见到命令行就想敲 ls / ps / find,遇到一个长文件名就想图省事敲 tab 。Windows 的命令行是如此的笨拙,经常让我感到不适。为了保持一个 Linux 的程序员的良好感觉,我在 Windows 上搭建了一个与 Linux 上几乎完全一样的开发环境。

其实做这件事不止有一种方法。最简单的方法是下载并安装 Cygwin。Cygwin 是 GNU 开发工具的 Windows 版。其中包括我们所熟悉的几乎所有 Linux 上的开发和实用工具,例如 gcc,g++,perl,tcl,autoconf,automake,cvs,awk,sed,etc. 甚至连 rpm 都可以在 Cygwin 中使用。安装好 Cygwin 后在桌面上点击其图标就可以进入 Cygwin 的开发环境 — bash。在 Cygwin 的 bash 中我甚至感觉不到自己是在 Windows 上工作。我是在 Windows 上吗?我是在某种 UNIX 上吧。呵呵。:)
Cygwin 可以从这里下载:http://www.cygwin.com

还有一种方法是自己组合出一套 Linux 开发环境,这也是我所采用的方法。
首先我需要一个 GNU 的编译器 — gcc 。目前 Windows 上有 gcc 的很多移植版本,其中限制最少的是 Mingw。Mingw 可以编译真正 native 的 Win32 代码,而且 Mingw 编译出的代码与 VC++ 也最为接近。 Mingw 可以从这里下载:http://www.mingw.org
然后我需要一个功能比较全的 bash,我使用的是另一个 GNU开发工具的 DOS / Windows版 — DJGPP 中移植的 bash。DJGPP 中的开发工具可以从这里下载:ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/
同样,DJGPP 中也提供了我们在 Linux 上常用的几乎所有的开发和实用工具。

我还需要一个我在 Linux 上常用的编辑器,比如 vim 或者 emacs。没有问题,vim 的 Windows版 可以从这里下载:http://www.vim.org 。emacs 的 DOS/Windows 版 DJGPP 里就有。
我还需要一些常用的工具,比如 gzip,tar,bzip2,awk,sed,m4,etc. 也没有问题,这些工具 DJGPP 里也有。可是我想用真正的 32 位软件,于是我选择了这些工具的 Mingw 版,可以从这里下载:http://www.mingw.org/ported.shtml

我还想在 Windows 上使用 GTK 开发 GUI 应用程序。同样没有问题,GTK 早就被移植到了 Windows 上,使用的就是 Mingw。GTK for Win32 可以从这里下载:http://www.gimp.org/~tml/gimp/win32//downloads.html

我想有时候我可能会需要用到 Posix 系统调用,尤其是在我移植 Linux 软件到 Windows 上时。做这件事有两种方法,第一种是直接使用 Cygwin 做移植。Cygwin 中有完整的 Posix 系统调用。(使用一个模拟 Posix 调用的 dll ) 但是 Cygwin 的 License 是 GPL,使用 Cygwin 做的所有开发代码必须公开。还有一种方法是使用另外一个基于 DJGPP 的 Posix 模拟库来实现 Posix 系统调用。这个库叫做 PW32 (Posix on Win32),可以从这里下载:http://pw32.sourceforge.net/
除了 PW32 本身外,其作者还移植了很多有用的开发工具,其中包括 bash (又一个bash!),m4,perl,autoconf,automake,awk,sed,etc.。

OK,通过组合 Mingw,DJGPP 和 PW32 中的各种开发工具,我得到了与 Cygwin 差不多相同的开发环境。现在我可以很快乐地使用 GNU 开发工具随心所欲地开发我想开发的任何软件了。

希望这篇文章给大家的周末带来一些乐趣。 如果您对在 Windows 上使用 GNU 开发工具感兴趣,欢迎与我交流。我的邮箱是:
unruly_wind@sina.com

–dlee
(setq what \’Linux)
(message "% make the world better!" what)
 
cygwin/gcc和MinGW都是gcc在windows下的编译环境,但是它们有什么区别,在实际工作中如何选择这两种编译器。
 cygwin/gcc完全可以和在linux下的gcc化做等号,这个可以从boost库的划分中可以看出来端倪,cygwin下的gcc和linux下的gcc完全使用的是相同的Toolsets。
所以完全可以和linux一起同步更新gcc版本,而不用担心问题,并且在cygwin/gcc做的东西(不用win32的)可以无缝的用在linux下,没有任何问题。是在windows下开发linux程序的一个很好的选择。但是在cygwin/gcc下编译出来的程序,在windows执行必须依赖cygwin1.dll,并且速度有些慢,如果不想依赖这个东西的化,必须在gcc的编译选项中加入-mno-cygwin。加入这个选项其实gcc编译器就会自动的选择在安装cygwin/gcc时安上的mingw,这个mingw就是gcc的一个交叉编译。
 对于mingw作为gcc在windows上的一个实现,由于不像cygwin的gcc在一个模拟linux上运行,同时相当一部分linux的工具不能够使用,不过现在已经有Msys这个模拟unix的shell,可以解决很多的问题,不过没有cygwin好用,而cygwin/gcc的no-cygwin选项又依赖于mingw的支持,所以更新的更慢的,现在只是到3.3.3。在mingw下也是可以升级gcc的,不过需要使用msys。升级方法和在cygwin和linux下差不多,就不再罗嗦了。不过就我的升级经验来看好像都不太顺利。具体深入的测试,我也没有时间做了。
 也是可以让cygwin的最新安装的gcc支持no-cygwin,需要再做一遍交叉编译,但是我不会做,只好算了,呵呵,也许那一天我把这个搞定,再开一个贴吧。
 根据以上的分析,如果在windows开发linux程序,cygwin是很好的选择。如果你开发的程序不介意有一个cygwin1.dll的话,也是可以选择cygwin的。如果你是想开发windows下的程序,还要必须用gcc的化,mingw是很好的一个选择。但是在windows下有太多的编译器了,bc,vc,intel c…..。
 顺便说就题外的化,据说gcc4.0.0性能有很大的提升,如果我升级完gcc4后,再编译一把gcc4是不是以后的编译性能会提高很多呢?有机会一定要测试一下了,呵呵。
 
 一个技巧:如何知道当前版本的gcc的安装配置,用命令:gcc -v就可以了,呵呵。
win32下GNU 编译环境搭建
2005年08月09日 00:00:28

eclipse和dev-cpp这些都是调用MinGW或者Cygin来编译调试C/C++程序的. 建议使用MinGW,它全称是Minimal GNU for Win,是GNU开发工具在win32平台上的一个移植,不同于Cygin,MinGW是原生的win32移植,不需要另外的POSIX模拟中间层的支持.另外MinGW项目也发布了一个最小的posix实现接口–msys,移植了很多linux下很方便的小工具,比如ls,vi,rvxt等等. MinGW项目的主页是
    http://www.mingw.org
我们可以在上面下载最新的  MinGW-3.2.0-rc-3.exe 和 MSYS-1.0.10.exe 这两个文件,安装的时候先安装Mingw,然后安装msys.安装完msys之后会跳出一个问题,选y (yes), 然后它问你是不是已经安装了 MinGW, 选y,然后按它的例子输入MinGW的安装路径(比如c:/MinGW),这样msys就把这个路径mount到了安装路径的msys目录下,可以直接使用Mingw的那些工具了.

   好了.装好这两个以后我们就要eclipse编译c文件需要的gcc,gdb,make工具了.为了eclipse能找到它们,要把c:\\MinGW\\ bin目录加到windows的环境变量PATH中. 需要说明的是,c:\\MinGW\\bin目录下的make不是GNU的make,而是mingw32-make.exe,这个是make在windows 下的版本,由于没有posix完整接口,这个make缺少一些标准make的功能,同时也有一些linux下make所不具备的功能. 因为我们后面要用到pkg-config来自动配置GTK+库的路径,这是mingw32-make.exe所不支持的. msys中提供的GNU make是可以的,为了使用它,我们还得把msys安装目录下的bin目录加到环境变量PATH中.
Eclipse+CDT MSYS/MinGW开发GTK+2/Glade跨平台GUI开发环境构建
先声明,不管使用什么高级货IDE,统统都是对make、gcc/g++、GBD的包装,所以,无论用什么IDE,只要在cmd下面跑通了就肯定都没有问题!我习惯eclipse,就用这个做例子了。

一、准备工作:

  就是下载必备软件:
  #Eclipse&CDT:
   http://www.eclipse.org
  #MinGW环境:
   http://www.mingw.org/
   1、MinGW-3.2.0-rc-3.exe
   2、MSYS-1.0.10.exe
   3、msysDTK-1.0.1.exe
   4、msys-libtool-1.5.tar.bz2
  #GTK+ and GTKMM win32 port库:
   1、GTK+/Glade: http://gladewin32.sourceforge.net/
   2、GTKMM: http://www.pcpm.ucl.ac.be/~gustin/win32_ports/gtkmm.html
  
  解释一下上面都是什么东西:
  Eclipse是很好的集成开发环境,广泛应用在j2ee开发上,CDT是一套基于Eclipse平台的C/C++开发插件,功能强大,包括了代码辅助和调试,都很方便。
  MinGW-3.2.0-rc-3.exe和MSYS-1.0.10.exe再啰嗦一下,就是M$ Windows下开发跨平台C/C++的环境,什么cross compiler(gcc/g++之类)、debug(gdb)之类的还有一些标准库,其实在cmd下面一样用,只要装了msys就行,记得运行脚本文件要这样:sh configure;msysDTK-1.0.1.exe和msys-libtool-1.5.tar.bz2都是configure和make时需要的东西,一定要装;GTK+/Glade里面有已经port好了的安装文件,安装后里面除了有GTK的东西外还有glade;GTK是用纯c写的,安装GTKMM的C++封装后,就可以用C++做GTK了,同时,glade–.exe这个win32 port的用来生成glade c++文件的代码生成器也会一同安装。好了,需要详细了解的请看相关软件的linux版的官网,同时,如果不满意或不放心别人port的东西,完全可以在安装了mingw msys后自己来痛苦的port一把,反正我懒得要命。

  接下来要安装这些软件,别怕都是双击安装和解压缩,没啥技术含量。

  1、MinGW-3.2.0-rc-3.exe

  2、MSYS-1.0.10.exe

下面的窗口中全部按回车跳过msys和mingw的自动整合:

  3、msysDTK-1.0.1.exe & msys-libtool-1.5.tar.bz2

msysDTK-1.0.1.exe:

msys-libtool-1.5.tar.bz2解压缩后,copy其中全部的目录到c:\\msys\\1.0\\下面。

  4、GTK+/Glade和GTKMM

不要自动msys整合:

GTK和GTKMM必需都要安装到mingw的路径下:

  5、环境变量设置

添加PATH环境变量:

  在系统环境变量中设置/添加path变量为:c:\\MinGW\\bin;c:\\msys\\1.0\\bin

  6、复制C:\\MinGW\\share\\下全部目录到C:\\msys\\1.0\\share\\下面,这步很关键!不要遗漏!

  7、在cmd下输入 pkg-config –cflags gtkmm-2.4 和 pkg-config –libs gtkmm-2.4 ,如果出现了类似下面的内容就说明你的基本环境应该没什么问题了。

  完成了,你可以玩玩glade了,glade的图标就在你的桌子上面等着呢。

原创文章,转载请注明: 转载自YippeeSoft开心软件

本文链接地址: 20070130 windows linux c 编程

历史博文

标签:, , ,