Linux实战018:Ubuntu搭建C/C++开发环境
在Windows上开发C/C++我们可以直接安装微软提供的Visual Studio开发工具, Visual Studio提供了代码编辑、导航、分析、调试、编译、测试和部署等集成开发环境(IDE)可以帮助开发者简洁、快速、高效的完成工作。但是在 Visual Studio只适用于 Android、iOS、Mac、Windows、Web 和云的应用开发,并没有提供Linux版本。所以要想在Ubuntu上开发C/C++我们就需要找其他开发工具来代替,Ubuntu上开发C/C++至少需要代码编辑器、代码编译器和代码调试器。
代码编辑器
C/C++编写代码并没有什么太高的要求,是个编辑器都可以来编写C/C++代码。我们之所以会用各种IDE来编辑主要是为了降低开发难度,缩短开发周期、提高开发效率,如果你技术够硬其实用文本编辑器都可以敲代码(如Ubuntu上自带的编辑器vi/wim)。我们用vim来个简单的demo示例,引入头文件并通过printf打印出“hello ubuntu!”。
代码编译器
我们都知道C/C++是编译型语言,所以运行之前我们需要先对文件进行编译将源代码转换成可以在硬件上运行的程序。编译就是对源代码文件进行词法和语法的分析将高级语言指令转换为相应的汇编语言代码并生成可执行的二进制文件,一般编译C/C++代码我们可以用gcc/g++来实现。g++是款强大的编译器也是Ubuntu默认自带有g++编译器,我们来试试用g++来编译下demo.cpp。g++编译如果没有指定目标文件则会在当前目录生成一个a.out的文件,也可以通过参数-o指定目标文件名。
代码调试器
代码编译通过只能说明代码的语法没有问题,但是是否符合业务逻辑就需要我们去不断的调试和测来发现问题并解决问题才能达到我们的业务需求。而且即使经验再丰富的程序员编程时也避免不了出错,所以代码调试在开发中也是必不可少的。调试就是一步一步慢慢执行代码并跟踪程序的运行过程,通过查看当前变量的值、内存中的数据以及函数的执行过程、线程的调度等等来锁定问题所在位置并找出异常原因。GDB是Linux自带调试工具,支持C、C++、Go、Objective-C等多种编程语言的调试。GDB 调试器提供有大量的调试选项(指令既可以使用全拼也可以使用其首字母),可满足大部分场景中调试代码的需要。如b可以用来设置断点位置,r可以执行程序并在断点处暂停执行,c则继续执行直至遇到下一个断点停止或者结束。这里需要注意的是遇到“No symbol table is loaded. Use the "file" command”错误则说明你在编译源码的时候缺少选项参数-g,该参数指定文件生成时附带调试信息并允许被调试器调试。
VSCode编辑器
经过上面的示例说明Ubuntu本身就已经具备了C/C++的开发环境(好像我先装了VSCode和C/C++插件...,如果没有就自己安装下编译器和调试器),那么我们要做的就是借助IDE来提高C/C++开发效率。在Ubuntu上常见的C/C++开发工具有Eclipse、Anjuta、NetBeans、Codeblocks、Qtcreator、VSCode、Clion等,这几个我只用过Eclipse、Qtcreator和VSCode。个人感觉VSCode比较好用,刚好前端开发也选择了VSCode。
总结:
VSCode安装很简单,可以直接进Visual Studio Code官网下载相应的Linux版本(deb包), 也可以在Ubuntu软件中心直接搜索“Visual Studio Code”安装。下载之后直接点击“install"安装即可,如果是终端则可以通过dpkg -i package来安装。
为了方便学习,下面附上本文用到的源码:
// demo.cpp #include <stdio.h> int main(){ printf("hello ubuntu!\n"); return 0; } --------------------------------------- // g++ [option] file [option] [file] $g++ demo.cpp $./a.out hello ubuntu! $ gdb a.out (gdb) run Starting program: /home/kevinfan/a.out hello ubuntu! [Inferior 1 (process 2250) exited normally] (gdb)我告诉你msdn版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!