范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

Linux实战018Ubuntu搭建CC开发环境

  在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  int main(){         printf("hello ubuntu! ");         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)

惊喜还是惊吓?全球首批活体机器人能生崽了不少科幻片中都出现过机器人繁衍生息的剧情,而如今这样脑洞大开的情景似乎已成为了现实。近日,美国科学家借助超级计算机,用青蛙细胞打造出的活体机器人,首次完成了自我繁殖,还能四世同堂。任正非兑现承诺,华为海思开始招聘中科院出身的联想,近日的处境不太好,自从科创板上市一日游后,便成为了网友关注的焦点,尤其是司马南不断揭露联想真面目后,彻底引爆了舆论界,时事评论家胡锡进也于近日改变自己的立场,明确腾讯成功注册狗头表情包商标,柴犬本尊刚过16岁生日,曾经被主人弃养从去年开始,微信QQ微博等各大平台相继推出狗头表情包,成为笑哭表情包的强力竞争对手。企查查App显示,近期,腾讯申请的狗头商标正式完成注册,商标国际分类涉身器材家具等。早在今年2月怎么联系微信客服电话微信终于有人工客服了,打这个号码!平时大家用微信可能会遇到各种各样的问题,比如账号被禁转错账等等问题,这时候很多人都想第一时间找到微信的人工客服。网上随便一搜,就有很多人找不过在微联想比华为早成立3年有中科院背景,为何现在被华为甩得那么远?很简单华为老总任正非是真正爱国的企业家,目光长远联想教父柳传志是资本家,只看眼前利益!任正非想的是为国为民,柳传志想的是自己及少数关系人!这个很简单,一个为自己的钱包,一个是为大家有没有买过二手单反相机的说下体会?我从来没有买过,因为我有一定程度的洁癖,不喜欢别人用过的东西。不过,我们摄影圈子里,还是有不少人买二手摄影器材,包括单反。有个人就是这样,买了别人升级淘汰下来的尼康d810,以及尼会不会有人利用京东七天无理由退货无限用新手机的?这样的恶意退货行为是存在的。依稀记得,有个帖子,曾有网友晒出自己在某电商平台的退货记录,从价值几百元到数万元的电子产品。该网友利用电商平台的免费退货规则,免费体验了各式各样的数码产聚焦精准医疗建设智慧品牌来源人民网人民日报推进品牌建设,是一项打好基础利在长远的战略性工程,也是高质量发展的重要抓手。为解决医疗研发和治疗领域的效率问题,2014年医渡科技开启创业征程,始终坚守安全价值普想说爱小米手机不容易我不是华为粉也不是米粉,只是作为一个普通的消费者,首先爱国是必须的!米国之前没制裁华为的时候,以前还一直用苹果,从苹果4到苹果6S都用,一直都是新机就买,算是半个果粉。制裁之后就用爆料!iPhone13出现红绿双色屏Bug小米12全球首发骁龙8Gen1抢首发!小米12全球首发骁龙8Gen1小米CEO雷军于12月2日再次强调小米12骁龙8代全球首发,并发表长文强调首发是实力,也是承诺。近日,高通如期举行骁龙技术峰会,会上正式发布了基站机房里拔掉一根光纤会有什么后果?那就看运气了,如果你正好拔掉一根是PTN传输光纤很有可能本站传输所下挂基站全部断站,如果是环路的话不会断站,但后台告警马上就出来,没有自动恢复就会有工单发到铁塔代维,代维会快速去现
约会应用开发商Match起诉谷歌或被逐出PlayStore财经网科技5月10日讯,据新浪科技消息,约会应用开发商Match周一起诉谷歌,并称此举是背水一战,最终目的是避免Tinder及该公司其他应用因拒绝支付高达30的佣金而被逐出Play研究一些大型动物大脑体积关联灭绝概率新华社耶路撒冷5月10日电(记者王卓伦吕迎旭)以色列与意大利科研人员的一项联合研究认为,一些大型哺乳动物的大脑体积与该物种的灭绝概率有关已灭绝哺乳动物大脑的体积,比与其有进化关联的你必须知道的SpringAsync的一些坑前言大家都知道用Trancational,Async,Retryable等注解时,需要用代理调用才生效,用this调用是不生效的。大多数情况,是由另外的类发起调用,这是没有问题的。JavaScript空值合并运算符现实开发中,经常会有判断变量是否被定义的需求,然后根据它进行相应的操作letvisitor1Kylinconsole。log(visitor1??访客)Kylinletvisito移动公司怎么了好长一段时间,周围的人不断有人打10086,总是回复帮忙尽快解决,半个月了,还是这样。空间站上天,5G世界领先,航母围湾。中国这么先进的科技,移动公司弄的屋里没法上网上网要跑到院子特斯拉ModelY为目前最高效电动SUV之一IT之家5月9日消息,5月7日特斯拉发布2021年影响力报告,报告显示,到2030年,特斯拉的目标是实现每年销售2000万辆电动汽车(2021年为94万辆)。特斯拉在报告中称,全轮vueadmin增删改查(五)此篇幅比较长,涉及到的小知识点也比较多,一定要耐心看完,记住学东西没有耐心可不行!!!一添加和修改注添加和编辑用到了同一个组件,也就是此篇文章你能学会如何封装组件及引用组件第二能学数字货币老龙头深耕智慧城市启动一触即发这是家什么样的公司?公司是国内优质身份信息综合服务商,联合国ICAO机读旅行证件设备供应商,公司从事的主营业务覆盖安全证件智慧政务智慧交通等领域,公司为全球客户提供具有竞争力的智能python自动化工具pywinauto简介Pywinauto是完全由Python构建的一个模块,可以用于自动化Windows上的GUI应用程序。同时,它支持鼠标键盘操作,在元素控件树较复杂的界面,可以辅助我们完成自动化百里教你Selenium遇见伪元素该如何处理,快点学起来吧前言今天我们来说说Selenium遇见伪元素该如何处理,废话不多说,咱们直接开始。喜欢的记得关注小编哟。问题发生在很多前端页面中,大家会见到很多beforeafter元素,比如百度掌上海关APP跨境个人消费信息查询上新啦!您可在新的跨境电商个人消费信息小应用中直接查询本人本年度已消费额度及对应的消费明细,包括每票单据对应的通关状态税款信息等。您实名登录掌上海关APP后,点击常用应用或个人特色专题中的