Bas*_*tch 46
您不需要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.ccelse.o,请在源文件之后添加它们-L library-dir(可能-rdynamic如果你的程序使用带有dlopen(3)的插件......)-lfoo -lbar从较高级库libfoo.so到较低级库).-o yourexec.始终纠正您的源代码,直到您完全没有警告为止.信任编译器的警告和错误消息.
学习如何使用make和编写简单的Makefile-s; 看这个例子.
还有其他建设者,例如http://omake.metaprl.org/等
-g标志编译代码以使编译器生成调试信息; 只有在调试程序时,才要求编译器进行优化(例如使用-O1或-O2),尤其是在基准测试之前.gdbsvn或git(甚至是家庭作业).在2015年,我推荐git oversvn上面的建议并不特定于Ubuntu 11.10,它们可以应用于其他Linux发行版和其他Ubuntu版本.
由于您提出了多个问题,我将分别回答每个问题.
你对Ubuntu上的新C++程序员有什么建议吗?
学习一些构建系统,如CMake或SCons.虽然了解make和Makefiles 如何工作是有用的,但是有一种趋势,即从make转向更高级别的工具,这些工具也提供类似配置的功能.Make通常用于命令行构建,例如使用CMake,您可以生成Makefile并使用make构建项目.
使用版本控制系统,如git或Mercurial.我还建议至少为了备份的目的,在github等外部服务上保留你关心的项目.
注意编译器警告,但请记住,警告只能捕获一小部分可能的错误.使用静态分析工具和Valgrind等动态分析工具可以获得更完整的图像.
我应该从一开始就得到的任何图书馆?
我错过了一个非常好的IDE?(YMMV,但我更喜欢在IDE中工作)
日食-很长一段时间,我一直在想它作为一个Java只有IDE,但实际上它是一个很好的IDE几乎所有的东西(我甚至用写我的博士论文是TeXlipse插件)和C/C++的支持正在改善每时每刻.此外,CMake可以生成Eclipse CDT项目文件.
Qt Creator - 另一个优秀的C++ IDE.它速度非常快,并且具有本机CMake支持
从一开始我应该注意任何编程恩赐或陷阱?
除了已经提到的那些之外的一些提示:
valgrind --tool=callgrindKCacheGrind来查看程序在执行时花费的时间.