Ubuntu 11.10 上的 C 和 C++ 编程[关闭]
- 2024-10-21 09:14:00
- admin 原创
- 71
问题描述:
我最近安装了 Ubuntu 11.10 及其 CodeBlocks IDE,并且我知道我默认拥有 gcc 和 std 库。
我的问题是:
您对 Ubuntu 上的新 C++ 程序员有什么建议吗?
我应该从一开始就获得哪些库?
我是否缺少一个真正优秀的 IDE?(YMMV,但我更喜欢在 IDE 中工作)
从一开始我就应该知道哪些编程的好处或陷阱?
解决方案 1:
在 Ubuntu 上,您不需要 IDE 来用 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*(并且可能`-rdynamic`如果您的程序使用带有dlopen(3) 的插件...)
* 库(例如`-lfoo -lbar`从较高级别的库`libfoo.so`到较低级别的库。
* 输出文件(即生成的可执行文件),例如 `-o yourexec`。
始终纠正源代码,直到没有任何警告为止。相信编译器的警告和错误消息。
了解如何使用
make
和书写简单的Makefile
-s;参见此示例。
还有其他构建器,例如http://omake.metaprl.org/等
使用标志编译您的代码
-g
以使编译器生成调试信息;仅当您调试了程序后,才要求编译器进行优化(例如使用-O1
或-O2
),尤其是在基准测试之前。了解如何使用
gdb
使用版本控制系统,例如
svn
或git
(即使是家庭作业)。2015 年我推荐使用git,而不是svn
备份你的工作。
学习使用valgrind来查找内存泄漏。
注意:
上述建议并不针对 Ubuntu 11.10,它们也适用于其他 Linux 发行版和其他 Ubuntu 版本。
解决方案 2:
QT Creator是一款出色的 IDE,它也能很好地处理基于 Makefile 的简单项目。此外,作为 C++ 程序员,您应该查看Dia和Dia2Code,以自动从 UML 图表生成存根。
解决方案 3:
由于您问了多个问题,因此我将分别回答。
您对 Ubuntu 上的新 C++ 程序员有什么建议吗?
学习一些构建系统,例如CMake或SCons。虽然了解make和 Makefile 的工作原理很有用,但人们倾向于放弃 make,转而使用更高级的工具,这些工具也提供类似 configure 的功能。Make 通常用于命令行构建,例如,使用 CMake,您可以生成 Makefile 并使用 make 构建项目。
使用版本控制系统,例如git或Mercurial。我还建议将您关心的项目保存在某些外部服务(例如github)上,至少出于备份目的。
注意编译器警告,但请记住警告只能捕获一小部分可能的错误。使用静态分析工具和动态分析工具(如Valgrind)可以获得更完整的信息。
我应该从一开始就获得哪些库?
您已经获得了主要的C++ 标准库。确保您知道它提供了什么。
Boost将满足除 GUI 之外的大部分剩余需求。
Gtkmm和Qt是两个主要的 C++ GUI 框架。
我是否缺少一个真正优秀的 IDE?(YMMV,但我更喜欢在 IDE 中工作)
Eclipse - 长期以来,我一直认为它是一款仅适用于 Java 的 IDE,但事实上,它是一款适用于几乎所有领域的出色 IDE(我甚至使用TeXlipse插件在其中撰写了我的博士论文),并且 C/C++ 支持一直在改进。此外,CMake 还可以生成Eclipse CDT项目文件。
Qt Creator - 另一个出色的 C++ IDE。它非常快,并且具有原生 CMake 支持
从一开始我就应该知道哪些编程的好处或陷阱?
根据我的经验,C++ 中最常见的错误来源是指针和异常情况下的资源管理。请确保您理解并使用RAII习语和智能指针。
欲了解更完整的陷阱和建议列表,请参阅此问题的答案。
解决方案 4:
除了已经提到的提示之外,还有一些提示:
Valgrind是查找内存泄漏的好帮手。您还可以使用
valgrind --tool=callgrind
KCacheGrind 查看程序在执行过程中花费的时间。如果你要分发你的程序,你应该学习 autotools 或 cmake。前者是一个经典工具,有点臃肿,后者则更现代。
如果您正在寻找轻量级的 IDE,Geany 是一款不错的 IDE。否则,请看看 Code::Blocks、Eclipse/CDT 和 NetBeans。
由于我不确定您所说的“std 库”是什么意思,我应该提一下,除了标准 C 库之外,还有许多POSIX 函数和接口,它们在大多数 *nix 系统(包括 Mac OS X)中都很常见。
解决方案 5:
Eclipse/CDT在 Ubuntu 上运行非常好。
解决方案 6:
Boost提供了一大堆常用的、可以派上用场的库。无论如何,我不太确定这些问题是否适合放在问答板上。
编辑:正如 Basile 所建议的,Makefile
s 和学习使用gdb
都是好主意。还有很多简洁的标志可供使用gcc
,有助于调试代码、优化代码、生成汇编指令等。
解决方案 7:
在编程的第一步中,你不应该使用 IDE,因为你会更好地了解背后发生的事情 :) GCC 或 G++ 和 stdlib 就足够了。你还应该阅读有关 Makefiles、SVN(CVS、GIT)、Autotools 或 CMake 的信息,以管理你的项目。如果你想制作 GUI 应用程序,你应该学习 GTK+ 或 Qt。如果你想要真正的 IDE 来满足你的需求,请尝试使用带有 C/C++ 插件的 Eclipse。祝你好运 :)
解决方案 8:
如果您熟悉命令行,您可以使用 vim 和 gcc/g++ 等编辑器来编译代码,也建议学习 make svn git。
如果您不熟悉命令行或者更喜欢使用 UI:NetBeans也是一个很好的 IDE,您可以用它来开发 c/c++ 和 java。
要安装 netbeans:打开 Firefox 并指向 apt://netbeans 我希望这对您有所帮助。
解决方案 9:
我认为 Netbeans 很好。Microsoft Windows 和 Linux 上的 UI 相同。内置版本控制器并默认安装 Git。没有添加额外的库(与 QT 相反)
解决方案 10:
库:我推荐你使用 Boost。你可以在其中找到很多库。IDE:Eclipse 和 QTCreator 都是不错的 IDE,但我认为使用文本编辑器 + makefile 也很重要。Vim、Emacs 或 Sublime Text 是不错的选择。一定要记得备份你的代码。
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件