Ubuntu 11.10 上的 C 和 C++ 编程[关闭]

2024-10-21 09:14:00
admin
原创
213
摘要:问题描述:我最近安装了 Ubuntu 11.10 及其 CodeBlocks IDE,并且我知道我默认拥有 gcc 和 std 库。我的问题是:您对 Ubuntu 上的新 C++ 程序员有什么建议吗?我应该从一开始就获得哪些库?我是否缺少一个真正优秀的 IDE?(YMMV,但我更喜欢在 IDE 中工作)从一开...

问题描述:

我最近安装了 Ubuntu 11.10 及其 CodeBlocks IDE,并且我知道我默认拥有 gcc 和 std 库。

我的问题是:

  • 您对 Ubuntu 上的新 C++ 程序员有什么建议吗?

  • 我应该从一开始就获得哪些库?

  • 我是否缺少一个真正优秀的 IDE?(YMMV,但我更喜欢在 IDE 中工作)

  • 从一开始我就应该知道哪些编程的好处或陷阱?


解决方案 1:

在 Ubuntu 上,您不需要 IDE 来用 C 或 C++ 编写代码。您可以使用一个好的编辑器(例如emacs,您可以根据需要对其进行配置)。

给新手的一些建议:

  1. 总是编译-Wall -Wextra,甚至可能编译 -Werror -pedantic-errors

  2. 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`。
  1. 始终纠正源代码,直到没有任何警告为止。相信编译器的警告和错误消息。

  2. 了解如何使用make和书写简单的Makefile-s;参见此示例。

还有其他构建器,例如http://omake.metaprl.org/

  1. 使用标志编译您的代码-g以使编译器生成调试信息;仅当您调试了程序后,才要求编译器进行优化(例如使用-O1-O2),尤其是在基准测试之前。

  2. 了解如何使用gdb

  3. 使用版本控制系统,例如svngit(即使是家庭作业)。2015 年我推荐使用git,而不是svn

  4. 备份你的工作。

  5. 学习使用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:

除了已经提到的提示之外,还有一些提示:

  1. Valgrind是查找内存泄漏的好帮手。您还可以使用valgrind --tool=callgrindKCacheGrind 查看程序在执行过程中花费的时间。

  2. 如果你要分发你的程序,你应该学习 autotools 或 cmake。前者是一个经典工具,有点臃肿,后者则更现代。

  3. 如果您正在寻找轻量级的 IDE,Geany 是一款不错的 IDE。否则,请看看 Code::Blocks、Eclipse/CDT 和 NetBeans。

  4. 由于我不确定您所说的“std 库”是什么意思,我应该提一下,除了标准 C 库之外,还有许多POSIX 函数和接口,它们在大多数 *nix 系统(包括 Mac OS X)中都很常见。

解决方案 5:

Eclipse/CDT在 Ubuntu 上运行非常好。

解决方案 6:

Boost提供了一大堆常用的、可以派上用场的库。无论如何,我不太确定这些问题是否适合放在问答板上。

编辑:正如 Basile 所建议的,Makefiles 和学习使用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 是不错的选择。一定要记得备份你的代码。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用