我最近安装了Ubuntu 11.10及其CodeBlocks IDE,我知道我默认有gcc和std库。
我的问题是:
你有没有关于Ubuntu的新的C ++程序员的任何提示?
我应该从一开始就得到任何图书馆?
我错过了一个非常好的IDE? (YMMV,但我更喜欢在IDE中工作)
我从一开始就应该知道的任何编程优化或陷阱?
在C中实现shell,需要帮助处理input/输出redirect
Visual Studio将隐藏的数据存储在编译的文件中?
如何在gdb / TotalVIEw中为复杂types编写本地C ++deBUGging器展示器
我可以使用正确的链接顺序和依赖关系为C项目重新生成makefile吗?
syscalls添加到linux的历史?
在编译时将用户空间C函数代码下移到内核空间?
启动时在清单中使用uiAccess = true运行C#WPF应用程序
在64位计算机上执行buildint之后,第一次出现“System.BadImageFormatException”types的exception
是否有可能在linux中将数据写入到自己的stdin中
测量父母和子女进程的时间
在Ubuntu上,您不需要使用IDE或C或C ++编写代码。 你可以使用一个好的编辑器(比如emacs ,你可以配置它来满足你的需求)。
一些新手的一些提示:
总是用-Wall -Wextra编译,甚至可能用-Werror -pedantic-errors编译
编译器的参数顺序( gcc或g++ )非常重要; 我建议:
一般警告和优化标志(例如-Wall , -g获取调试信息, -O , -flto等或-c以避免链接,…)
预处理器选项,如-I include-dir和-D defined-symbol (或-H来理解包含的头文件)等等。
源文件[s]像hello.c或world.cc一样编译
如果你想链接现有的对象文件else.o ,在源文件之后添加它们
链接器选项(如果相关),特别是-L 库的目录 (如果您的程序使用插件与dlopen(3) ….可能是动态的…)
库(如libfoo.so等更高级库到更低级库的-lfoo -lbar 。
输出文件(即生成的可执行文件),例如-o yourexec 。
总是纠正你的源代码,直到你没有任何警告。 信任编译器的警告和错误消息。
学习如何使用make和编写简单的Makefile -s; 看到这个例子 。
还有其他的建设者,如http://omake.Metaprl.org/等
用-g标志编译你的代码,让编译器产生调试信息; 只有当你调试你的程序时,要求编译器进行优化(例如使用-O1或-O2 ),特别是在基准测试之前。
学习如何使用gdb
使用像svn或git这样的版本控制系统(甚至是作业作业)。 在2015年,我推荐svn git
备份你的工作。
学习使用valgrind来寻找内存泄漏。
NB
上面的建议不是特定于Ubuntu 11.10,可以适用于其他linux发行版和其他Ubuntu版本。
QT Creator是一个很好的IDE,它也适用于简单的基于Makefile的项目。 另外,作为一个C ++程序员,你应该检查Dia和Dia2Code从UML图中自动生成存根。
既然你问了不止一个问题,我会分别回答。
你有没有关于Ubuntu的新的C ++程序员的提示?
学习一些构建系统,如CMake或SCons 。 尽管理解Make和Makefiles如何工作是有用的,但是也有一种趋势,即转向更高层次的工具,它们也提供类似于配置的功能。 Make通常用于命令行构建,例如使用CMake,您可以生成Makefiles并使用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成语和智能指针 。
有关陷阱和建议的更完整列表,请参阅此问题的答案。
Eclipse / CDT在Ubuntu上运行得非常好。
除了已经提到的一些提示:
Valgrind是你寻找内存泄漏的朋友。 您也可以使用valgrind --tool=callgrind和KCacheGrind来查看程序花在执行上的时间。
如果你要分发你的程序,你应该学习autotools或cmake。 第一个是古典工具,有点臃肿,第二个更现代。
Geany是一个不错的IDE,如果你正在寻找轻量级的东西。 否则,请查看Code :: Blocks,Eclipse / CDT和NetBeans。
由于我不确定“std库”是什么意思,我应该提到除了标准C库之外,还有很多POSIX函数和接口 ,这些函数和接口对于大多数* nix系统(包括Mac OS X)都是常见的。
Boost提供了一大堆常用的库,可以派上用场。 无论如何,我不确定这个问题在问答板上是否合适。
编辑:如Basile建议, Makefile和学习使用gdb是伟大的想法。 还有很多整洁的标志可以用于gcc ,帮助调试你的代码,优化它,产生汇编指令等等。
我认为Netbeans是好的。 Microsoft windows和linux中的相同UI。 内置版本控制器,默认安装Git。 没有添加额外的库(作为QT的oposit)
在编程的第一步,你不应该使用IDE,因为你会更好地理解背后发生了什么:) GCC或G ++和stdlib就足够了。 你也应该阅读Makefiles,SVN(CVS,GIT),autotools或CMake来管理你的项目。 如果你想制作GUI应用程序,你应该学习GTK +或Qt。 如果您需要真正的IDE来满足您的需求,请使用C / C ++插件尝试Eclipse。 祝你好运 :)
如果你熟悉命令行,你可以使用像vim和gcc / g ++这样的编辑器来编译你的代码,建议学习make svn git。
如果您不熟悉命令行,或者您更喜欢使用UI: NetBeans也是一个很好的IDE,您可以使用它在c / c ++和java中进行开发。
要安装netbeans:打开firefox并指向apt:// netbeans我希望这会帮助你。
库:我建议你使用Boost。 你可以在其中找到很多库。 IDE:Eclipse和QTCreator是好的IDE,但是我认为使用文本编辑器+ makefile也是非常重要的。 Vim,Emacs或Sublime Text是不错的选择。 永远记得备份你的代码。
总结以上是内存溢出为你收集整理的Ubuntu 11.10上的C和C ++编程全部内容,希望文章能够帮你解决Ubuntu 11.10上的C和C ++编程所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)