我最近安装了Ubuntu 11.10以及CodeBlocks IDE,我知道默认情况下我有gcc和std库。
我的问题是:
答案 0 :(得分:45)
您不需要IDE在Ubuntu上使用C或C ++进行编码。您可以使用一个好的编辑器(如emacs
,您可以根据自己的需要进行配置。)。
新手的一些提示:
-Wall -Wextra
进行编译,甚至可以使用-Werror -pedantic-errors
编译器(gcc
或g++
)的参数顺序非常重要;我建议:
-Wall
,-g
以获取调试信息,-O
,-flto
等,或-c
以避免链接,。 ..)-I
include-dir 和-D
defined-symbol (或-H
,以了解哪些标头包含在内)等。hello.c
或world.cc
else.o
,请在源文件-L
library-dir (如果您的程序使用带dlopen(3)的插件,则可能-rdynamic
....) -lfoo -lbar
,从libfoo.so
等较高级库到较低级库。-o yourexec
。始终纠正您的源代码,直到您完全没有警告为止。信任编译器的警告和错误消息。
了解如何使用make
并撰写简单的Makefile
- s;见this example。
还有其他建设者,例如http://omake.metaprl.org/等
-g
标志编译代码,让编译器生成调试信息;只有在调试程序时,才要求编译器进行优化(例如使用-O1
或-O2
),尤其是在进行基准测试之前。gdb
svn
或git
等版本控制系统(即使是家庭作业)。 2015年,我建议git超过svn
上述建议并非特定于Ubuntu 11.10,它们可以应用于其他Linux发行版和其他Ubuntu版本。
答案 1 :(得分:12)
QT Creator是一个很好的IDE,也适用于简单的基于Makefile的项目。此外,作为C ++程序员,您应该查看Dia和Dia2Code,以便从UML图中自动生成存根。
答案 2 :(得分:7)
由于您提出了多个问题,我将分别回答。
您对Ubuntu上的新C ++程序员有什么建议吗?
了解一些构建系统,例如CMake或SCons。虽然了解make和Makefile的工作原理是有用的,但有一种趋势是从make转向更高级别的工具,这些工具也提供configure-like功能。 Make通常用于命令行构建,例如使用CMake,您可以使用make生成Makefile并构建项目。
使用版本控制系统,例如git或Mercurial。我还建议至少为了备份的目的,在github等外部服务上保留您关心的项目。
注意编译器警告,但请记住,警告只能捕获一小部分可能的错误。使用static analysis tools和Valgrind等动态分析工具可以获得更完整的图片。
我应该从一开始就获得哪些图书馆?
我错过了一个非常好的IDE? (YMMV,但我更喜欢在IDE中工作)
Eclipse - 很长一段时间以来,我一直认为它只是一个只有Java的IDE,但事实上它几乎适用于任何东西(我甚至用{{3}编写了我的博士论文}插件)和C / C ++支持一直在改进。此外,CMake可以生成TeXlipse项目文件。
Eclipse CDT - 另一个出色的C ++ IDE。它速度非常快,并且具有本机CMake支持
我从一开始就应该注意任何编程恩赐或陷阱?
答案 3 :(得分:5)
Eclipse/CDT在Ubuntu上运行得非常好。
答案 4 :(得分:5)
除了已经提到的那些提示之外的一些提示:
valgrind --tool=callgrind
和KCacheGrind来查看您的程序在执行时花费的时间。答案 5 :(得分:3)
Boost提供了一大堆常用的库,可以派上用场。无论如何,我不太确定这个问题在Q& A板上是否合适。
编辑:正如Basile所建议的,Makefile
和学习使用gdb
是很好的想法。有许多整洁的标志可用于gcc
,用于帮助调试代码,优化代码,生成汇编指令等。
答案 6 :(得分:2)
我认为Netbeans很好。 Microsoft Windows和Linux中的相同UI。内置版本控制器并默认安装Git。 没有添加额外的库(作为QT的oposit)
答案 7 :(得分:1)
在编程的第一步,你不应该使用IDE,因为你将更好地理解背后发生的事情:) GCC或G ++和stdlib就足够了。您还应该阅读Makefiles,SVN(CVS,GIT),Autotools或CMake来管理您的项目。如果你想制作GUI应用程序,你应该学习GTK +或Qt。如果您想要真正的IDE满足您的需求,请尝试使用C / C ++插件的Eclipse。祝你好运:)
答案 8 :(得分:1)
如果您熟悉命令行,可以使用vim和gcc / g ++之类的编辑器来编译代码,也建议学习make svn git。
如果您不熟悉命令行或者您更喜欢使用UI:NetBeans也是一个很好的IDE,可以用来开发c / c ++和java。
安装netbeans:打开firefox并指向apt:// netbeans 我希望这会对你有所帮助。
答案 9 :(得分:1)
图书馆:我建议你使用Boost。你可以在其中找到许多库。 IDE:Eclipse和QTCreator是很好的IDE,但我认为使用text editor + makefile也很重要。 Vim,Emacs或Sublime Text是不错的选择。 永远记得备份你的代码。