windows下用gcc编译的程序有什么集成开发环境可以用来调试吗?

qinuxman 发布于 2013/11/25 12:19
阅读 3K+
收藏 0
GCC
加载中
0
红薯
红薯

Windows 下最好的只有 Visual Studio,没有第二:)

qinuxman
qinuxman
因为有一些头文件,比如unistd.h,这些是unix里的东西,不知道用visual studio怎么样编译啊
0
wqvbjhc
wqvbjhc

用gdb可以调试,不过是命令行的。想用IDE,可以用codeblocks

0
南湖船老大
南湖船老大

windows下不用 Visual Studio,不是装逼就是耍流氓。VS提供的不仅仅是一个GUI界面,还有丰富的类库,完善的debug。

看到cygwin,mingw编译的程序我看都不看,直接走人。现在有很多人热衷于用VS或ICC编译来提高性能,做各种优化。mingw一般只是测试,或者编译一些很老的代码

ericsoul
ericsoul
@int03h 明显用win开发unix是因为需要在win下进行沟通。另外,客户的机子,你打算装什么东西来编代码,还是用vi?。一个成千上万个代码的程序,用vi能玩?vim我不知道能不能编写这种大型的系统。不过反正客户的机子是没有vim的。
int03h
int03h
回复 @ericsoul : 在win下进行unix或linux开发的都是觉得时间多的,在linux或unix下进行windows开的的也是觉得时间多的。以上几种都是觉得项目不够困难,所以制造困难的。 个人觉得,你要是开发win软件,就老实用win开发吧,开发linux软件,就老实用linux开发吧,开发unix软件就老实用unix开发吧。 以上建立在c/c++上,脚本类jvm类语言不算。
南湖船老大
南湖船老大
回复 @ericsoul : 我的语境限制了在win下开发C/C++语言了呀
南湖船老大
南湖船老大
回复 @qinuxman : VS有自己的类库,名字稍微有点差异
qinuxman
qinuxman
因为有一些头文件,比如unistd.h,这些是unix里的东西,不知道用visual studio怎么样编译
下一页
0
猫哥-u
猫哥-u
eclipse cdt+ cygwin/mingw
0
铂金小白

CodeBlocks with MinGW

0
Feng_Yu
Feng_Yu
自己写MakeFile不好吗?
Feng_Yu
Feng_Yu
回复 @qinuxman : 你需要脚本化,自动化,全部用脚本去实现了,你就发现不需要用IDE拿鼠标一个一个去点了。
qinuxman
qinuxman
主要是调试用gdb还是有点不直接,比如查看一个数组,就有点麻烦
0
eechen
eechen

首先需要明确,Windows上的两个GNU开发工具集MinGW和Cygwin的区别:
MinGW即"Minimalist GNU for Windows",目的在于使用GNU工具构建原生Windows应用.
Cygwin用于模拟Linux开发和运行环境,方便用户在Windows上开发一些通用Linux应用.
MinGW提供的是Windows API调用,而Cygwin提供的是POSIX API调用,Cygwin应用通过兼容层(cygwin1.dll)运行在Windows上.

比如说你要在Windows上使用一些Linux上通用的工具,像find/grep/awk/sed/cat/vim/nano/colordiff/ncdu等等这些经典的Shell工具,
还有gcc/g++/gdb/make这些GNU构建工具,你都可以通过运行Cygwin提供的setup.exe来安装相应的包.
你甚至可以这样理解,Cygwin就是一个运行在Windows上的小型的Linux发行版.
比如Windows版Netbeans IDE C++选择Cygwin作为编译构建环境,说明Netbeans IDE C++的定位就是在Windows上开发Linux应用.
另外Netbeans支持远程编译构建,你可以通过ssh登录远程Linux服务器(当然,也可以是你本地的虚拟机),使用远程Linux服务器上的编译构建工具来开发应用.
http://my.oschina.net/eechen/blog/155521

MSVC在各方面如编译速度/程序大小/执行效率/CPU/内存/IO上应该都较MinGW有优势.
但MinGW兼容GCC,对标准支持良好,能投入生产使用,Windows版的Qt SDK就集成了MinGW用于构建,编译和调试项目.
在Windows上可以使用Qt Creator + MinGW来进行C/C++开发,
http://qt-project.org/downloads下集成了QtCreator/MinGW/OpenGL的QtSDK安装即可.
当然Linux上也可以使用Qt Creator进行C/C++开发:
http://my.oschina.net/eechen/blog/166969
MinGW官方不支持64位,但是有一个64位的分支:
http://qt-project.org/wiki/MinGW-64-bit

下面看两个MinGW和MSVC的对比测试:

http://stackoverflow.com/questions/14734068/mingw-4-7-2-vs-visual-c-11-0-2012-benchmark
测试中使用了Adobe公司提供的代码包C++ Performance Benchmarks
http://stlab.adobe.com/performance/
MinGW 4.7.2
Total absolute time for uint8_t loop invariant: 83.17 sec
Total absolute time for int16_t loop invariant: 167.16 sec
Total absolute time for uint16_t loop invariant: 111.19 sec
Total absolute time for int32_t loop invariant: 150.49 sec
Total absolute time for uint32_t loop invariant: 142.03 sec
Total absolute time for int64_t loop invariant: 253.23 sec
Total absolute time for uint64_t loop invariant: 213.13 sec
Total absolute time for float loop invariant: 5.41 sec
Total absolute time for double loop invariant: 11.07 sec
Visual C++ 11.0 (2012)
Total absolute time for uint8_t loop invariant: 165.57 sec
Total absolute time for int16_t loop invariant: 157.70 sec
Total absolute time for uint16_t loop invariant: 169.43 sec
Total absolute time for int32_t loop invariant: 152.36 sec
Total absolute time for uint32_t loop invariant: 143.81 sec
Total absolute time for int64_t loop invariant: 363.21 sec
Total absolute time for uint64_t loop invariant: 353.42 sec
Total absolute time for float loop invariant: 11.05 sec
Total absolute time for double loop invariant: 55.41 sec
虽然在这个测试里MinGW占优,当然也不能说MinGW就比MSVC好,但肯定能说明的是MinGW绝不是玩具,QtSDK集成MinGW也不无道理.

再看看这篇文章的测试结果(VC2005 MinGW3.4.2):
http://blog.csdn.net/yaolab/article/details/659463

matrix.mingw.o3力压matrix.delphi,紧随matrix.vc.ox其后.

最后:编译器的性能很重要,但其实你的算法和代码质量更重要.

ericsoul
ericsoul
科普,受教了。
0
南湖船老大
南湖船老大

引用来自“Feng_Yu”的答案

自己写MakeFile不好吗?

每次看到VIM党/makefile党,我就想到这一段,求反驳:

很多程序又不是只由代码组成的,那么多资源文件,如果是GUI的话还有GUI的window description和code behind,这些都是要用IDE来生成代码的。你用vim也不是不行,这个功能你可以在make里面搞定。但是你就不觉得很多东西直接用人来输入时很麻烦的吗?明明拖个按钮进去写成代码得写一大堆就不觉得麻烦吗?写游戏的时候shader不用material tree来生成,非要手写?material tree用make还不好做,你还得自己写代码生成器来给make调用。要是IDE你至少可以集成个简单粗暴的编辑器进去,手写material tree也是要吐血的。


r
robturtle
回复 @南湖船老大 : 还是那个标准反驳。狭隘意义上的IDE党总是以为vim/emacs党没有自动补全,没有语义分析,编译要亲自敲入命令和参数;vim/emacs党则以为IDE党干什么事情都只能用鼠标,没有快捷键,编辑效率低下等等。而事实上,二者的发展早就不能拿n年前的概念来套。在自动化工具多如牛毛的今天,你可以轻松用python粘出一个IDE来。
南湖船老大
南湖船老大
回复 @robturtle : 我只知道CMake是多了一个选择,谁优谁劣什么的我也不懂。
r
robturtle
如果不是makefile,是CMakeLists.txt呢?又如何评价?
zhuang
zhuang
回复 @南湖船老大 : 我看错了, 31724825 这里是他(vczh)的群,高手挺多的
南湖船老大
南湖船老大
回复 @zhuang : 我说了“想到这么一段”,说明不是我写的,是从别处看到的。
下一页
0
不及阁大学士
不及阁大学士
这楼歪的,本来只是问工具,变成口水战了!
0
gotham
gotham
qcreate不是挺好的嘛
eechen
eechen
回复 @qinuxman : 他应该指的是Qt Creator。
qinuxman
qinuxman
不存在你说的这种东西
返回顶部
顶部