C语言编译软件纠结中

_从雨 发布于 2014/10/01 20:36
阅读 1K+
收藏 2
我原来用的是dev cpp,最近老爸给我换了台电脑。win8系统貌似用不起dev cpp。我在纠结用code:: blocks还是visual studio (code::blocks以前用过,不过电脑用着老卡,放弃了)
加载中
1
DavidWTF
DavidWTF
所有的开发环境都是个坑,不要辨哪个好了。你用习惯了,就觉得好。然后就觉得其它的是shit 。
1
Force武装卫队
Force武装卫队

在Windows下,我建议无论是否使用IDE开发,都安装Visual Studio,当然你可以安装Microsoft Visual Studio Express 2013 for Windows Desktop,这个是免费的.

CodeBlocks 只是个IDE,需要第三方编译器的支持,安装的时候需要选择Mingw(含TDM),或者Microsoft C/C++,后者在Visual Studio中是必备的,除非你安装的时候取消了Visual C++.

Mingw本质上是GCC编译器工具链在Windows的原生实现(区别于cygwin,CYGwin是实现一个转换层,提供POSIX的API功能),Mingw类工具具体有3个发行版。
MinGW ,项目主页为mingw.org,Mingw最值得称赞的,我认为是msys "Minimal SYStem"
提供了一套模拟Linux的环境,但对于Mingw的GCC
,我认为并不好,其一,相对于Mingw64,Mingw的更新非常缓慢,譬如GCC 4.9.1 2014-07-16释放,而Mingw至今并未释放二进制,而Mingw64有大量的用户参与,一般在GCC发布新版的一周内,基本上都会有二进制释放,而网络上很多个人做发行版的都转到Mingw64上面了。
如果要使GCC在Windows上能够做正常开发,需要的有Windows SDK,C Runtime,那么mingw.org也就需要实现这些,当然,如果主动兼容官方的Windows SDK也未必不可,Clang提供的clang-cl就对Windows SDK实现了绝大部分兼容。mingw.org 的叫w32api,这是一个“古老”的实现,譬如IME的API都没实现好,如下的代码就是w32api的缺失的,这样的后果就是CodeBlocks的编辑窗口,wxScintilla控件无法实现编辑框的定位。坊间有传闻,Mingw64也是受不了mingw的缓慢和古老才另立门户的。现在又出现了一个MSYS2的项目,提供64位和32位的POSIX模拟环境,Bash什么的都能用,安装程序用的Qt Install Framework.
目前,Mingw 仅支持32位,官方曾计划推出64位的,但一直没有实现。

#define WM_IME_STARTCOMPOSITION 0x010D
#define WM_IME_ENDCOMPOSITION 0x010E
#define WM_IME_COMPOSITION 0x010F
一切问题可以去官方Wiki了解,或者通过邮件联系开发者 FAQ http://mingw.org/wiki/FAQ

Mingw64官方网址:http://mingw-w64.sourceforge.net/ 项目正式名称为MinGW-w64
提供32位 平台为i686-w64-mingw32 ,64为x86_64-w64-mingw32,事实上,在Linux下也有Mingw64或者是Mingw的存在,一些软件就使用MinGW-w64编译后发布到Windows,Mingw64的优势相对于Mingw非常显著,其一,API更新非常迅速,直接基于Windows dll直接导出后修改,项目编译即可,其二实现了一个性能优异的pthread winpthread。MinGW-w64的使用和支持者非常多,Mingw-w64 version 2.0 基于Windows 7/Vista实现,而3.0提供了Windows Store API的初步支持。网上很多人位Mingw64提供二进制,或者自己提供发行版。

这是一个美国伙计自己做得发行版 http://nuwen.net/mingw.html 静态编译,程序体积小,工具链齐全。
TDM-GCC,TDM-GCC 32位使用w32api,而64位使用Mingw64的实现的Windows API。一般而言,TDM-GCC 64位提供双平台,也就是64位工具链编译32位也能编译64位程序。

MSYS2

以上就是Mingw的特点.
编译器Microsoft C/C++,的好处不言而喻,API支持完全,稳定,性能优异,32位64位支持,一应俱全。

Visual C/C++也有一套命令行工具,nmake对应GNU make,lib,link,cl,ml(ml64)

工具的结合最后还是由你自己做选择。用个文本编辑器写好了,写个CMakeList也可行CMake生成项目文件或者makefile,用msbuild或者make都行。什么好用就用什么,我喜欢visual Studio 的智能感知,代码补全什么的牛逼哄哄,CodeBlocks还差得远,Linux下干脆用SublimeText。


eechen
eechen
回复 @Force武装卫队 : 说实话,Code::Blocks和CodeLite的智能提示跟Eclipse CDT和Qt Creator完全不在一个级别。
eechen
eechen
回复 @Force武装卫队 : Linux上用IDE同样需要用Makefile,比如Eclipse CDT就能自动生成Makefile。如果想自己写Makefile,IDE同样有用场,比如可以利用Qt Creator快速的项目函数、系统函数智能提示代码跳转、GDB图形化调试、Valgrind运行内存分析。
Force武装卫队
Force武装卫队
回复 @eechen : 还有CodeBlocks CodeLite ,这些我都知道,全部都用过,Linux下面还是文本编辑+Makefile来的痛快,没好的不如不用
eechen
eechen
而且Linux上能够使用man和cppman非常方便的查看系统API和标准库函数,另外也有在线的man7.org手册,方便得很: http://my.oschina.net/eechen/blog/206443
eechen
eechen
说的好像Linux上没有IDE似的。Qt Creator、Eclipse CDT、Netbeans for C++、Jetbrains CLion,这些对Linux API的智能提示一点都不差。别以为世界上的IDE只有萎软的屎丢丢,一叶障目,不见泰山。
0
DavidWTF
DavidWTF
果断用vs2013。用微软的系统还不用微软的开发工具?怎么行?
_
_从雨
好的,就决定是vs了
0
痞子蔡
痞子蔡

回答这种问题很可能被喷啊!唉,算了,冒着被喷的危险说下我的看法。

CodeBlocks体积小功能全,只学C或C++的话,CodeBlocks完全能满足,最爽的是自带的那些项目模板,opengl, qt4, arm, wxwidget, dll, lib等,这些都可以用来进一步学习C方面的知识。

VS的话,功能太多了,初学者很多功能根本用不着。而且一不小心就容易走上MFC这条不归路。除非打算学习C#、COM、WTL等知识,不然我觉得用VS太奢侈了。

0
中山野鬼
中山野鬼
楼主,编辑器+make +编译套件 + 命令行(及脚本),是搞c的不变真理。。。哈。不怕喷的说一句,“搞c用ide,是一种shit的方式,做出来的,也是shit。。。”,至于 vc这种,注意是服务于c++的,c和c++完全是两种东西。哈。
西门飞
西门飞
决定了 就按照你的这个建议
0
eechen
eechen
Windows MinGW/TDM-GCC C/C++ IDE: Orwell Dev-C++
http://sourceforge.net/projects/orwelldevcpp/
http://www.wilcobrouwer.nl/bestanden/devcpp5300.png
Orwell Dev-C++应该是支持Windows 8的。

要不下个自带MinGW的Qt SDK,安装时选择安装Qt Creator和MinGW这两个组件也可以。
http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/4.8/4.8.6/qt-opensource-windows-x86-mingw482-4.8.6-1.exe
以后转到Linux上也可以非常轻松的使用Qt Creator进行开发:
http://my.oschina.net/eechen/blog/166969
0
L5_Railgun
L5_Railgun

引用来自“中山野鬼”的评论

楼主,编辑器+make +编译套件 + 命令行(及脚本),是搞c的不变真理。。。哈。不怕喷的说一句,“搞c用ide,是一种shit的方式,做出来的,也是shit。。。”,至于 vc这种,注意是服务于c++的,c和c++完全是两种东西。哈。

我所有C代码都是在IDE下写出来的,而且我觉得我写的软件挺牛逼的~肿么办?

IDE+C = SHIT,你的论据来自于何处?

而且我也挺奇怪的,IDE除了方便我敲代码,对软件本身有半毛钱影响?

0
m
magiclogy

vc是为微软的MFC和Windows API准备的。只用这两个东西,构建的时候非常非常舒畅,基本上啥都不用管。但是一旦要引入其他库就蛋疼了。。。 msbuild提供了一套图形界面,假如你不去学msbuild的xml文件如何编写,要么去倒腾一个叫“属性管理器”的东西,要么每次都手动调整啊!假如在学习一个库或者框架,一次次地调整简直要人命。但是想要弄属性管理器的东西,最后可能还是会落到学msbuild。。。这个时候,你会发现几乎只有微软会用msbuild。。。


c++非常复杂的构建过程,真的非常不容易设计出一套简单易懂的图形化界面来处理。java要引入一个东西,可以直接导入一个jar包(复杂的情况我不太了解。。。)。c++要引入一个东西,简直就是恶梦了。。。

0
痞子蔡
痞子蔡

引用来自“中山野鬼”的评论

楼主,编辑器+make +编译套件 + 命令行(及脚本),是搞c的不变真理。。。哈。不怕喷的说一句,“搞c用ide,是一种shit的方式,做出来的,也是shit。。。”,至于 vc这种,注意是服务于c++的,c和c++完全是两种东西。哈。
中山野鬼大叔的这句话有点偏激了,程序员口中的编辑器至少都是神器级别了。如VIM,EMACS,SUBLIME等等,自己用神器却不让人家用IDE了?再者,如果人家只搞Windows,不搞Linux,也没必要要求人家会Makefile和Shell。只要不是用记事本那种原始的编辑器写代码,其他各种编辑器都可能是IDE或者可以配置成IDE,所以没必要骂IDE是SHIT,因为可能你就在用。
返回顶部
顶部