我的问题是:
>你有没有关于Ubuntu上新的C程序员的提示?
>从一开始我应该得到的任何图书馆
>一个很好的IDE我失踪了? (YMMV,但我更喜欢在IDE中工作)
>从一开始我应该注意的任何程序设计的好处或陷阱
一些新手的几个提示:
>总是用-Wall -Wextra编译,甚至可能使用-Werror -pedantic错误
>编译器(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;见this example。
还有其他建筑商,例如http://omake.metaprl.org/等
>使用-g标志编译代码,使编译器产生调试信息;只有当您调试了程序时,才要求编译器优化(例如使用-O1或-O2),特别是在进行基准测试之前。
>了解如何使用gdb
>使用版本控制系统,如svn或git(即使是作业分配)。在2015年,我推荐git超过svn
>备份你的工作
>学习使用valgrind来寻找内存泄漏。
NB
上面的建议不是Ubuntu 11.10的具体内容,它们可以应用于其他Linux发行版和其他Ubuntu版本。