当前位置:   article > 正文

AI-基础技能-系统篇-常用开发工具(4)-C++_ai做c++

ai做c++

(欢迎关注公众号:aibotlab)

文章回顾:

AI-基础技能-系统篇-常用的开发工具(1)

AI-基础技能-系统篇-常用的开发工具(2)- python

AI-基础技能-系统篇-常用开发工具(3)-C++

目录

1、开发平台

2、python开发工具

3、C++开发工具

3.1、环境配置

3.2、IDE

3.2.1 Visio Studio 2019

3.2.2 Qt creater

3.2.3 Vscode

3.2.4 Clion

3.3 编译工具

3.3.1 Makefile

3.3.1 Cmake

3.4 Vim


1、开发平台

        见上一篇:AI-基础技能-系统篇-常用的开发工具(1)

2、python开发工具

        见上一篇:AI-基础技能-系统篇-常用的开发工具(2)- python

3、C++开发工具

        相对于python,C++的开发环境就要复杂的多了,同一个IDE,在不同的电脑上安装之后都不定马上正常使用,因为IDE的环境依赖于系统环境,不同电脑的系统环境的C++/C版本不一样,很容易导致IDE无法正常编译执行,当然这种情况虽然不是绝对都发生,但是配置起来还是比较麻烦的。下面给大家推荐几款相对来说常用而且较为好用易用的C++IDE工具:Visio studio 2019、Vscode、Qt creater、Clion或者开发工具Makefile、cmake、vim。

3.1、环境配置

        说起环境配置,基本上,Visio studio 2019、Vscode、Qt creater、Clion直接安装后,系统没啥问题的话,都是能直接使用的,到了编写具体代码时,如果报错提示了缺少什么动态库之类的,再进行配置就可以了。

3.2、IDE

        这里推荐四款IDE工具:Visio Studio 2019、Vscode、Qt creater、Clion,这四款IDE目前都支持跨平台,当然,如果非要在linux上安装一般visio studio,也不是不行,就是相当麻烦,这里就不在赘述了,毕竟小编曾试过,太浪费时间了,哈哈。

        这四款工具都支持Cmake、make编译,当然,每个IDE也都同时有自己独有的编译方式,建议哪个容易上手用哪个,毕竟,IDE底层都是依赖的g++、gcc,整个项目工程都换成Cmake,就和IDE没关系了,所以,易用易上手是首选,用熟练了,其它的再用就很随意了。不过调试的方式和便捷性还是有差异的,debug的详细程度也不尽相同。

        这四款工具的不同之处主要有:编译工具不同,支持的编译方式不一样。

3.2.1 Visio Studio 2019

        见:AI-基础技能-系统篇-常用开发工具(3)-C++

        (欢迎关注公众号:aibotlab)


3.2.2 Qt creater

        见:AI-基础技能-系统篇-常用开发工具(3)-C++

        (欢迎关注公众号:aibotlab)


3.2.3 Vscode

官网:Visual Studio Code - Code Editing. Redefined

(欢迎关注公众号:aibotlab)

1、VScode界面预览

2、开始安装

3、安装速度很快,点击完成,启动vscode

4、如何使用vscode构建项目

官网构建方式:Get Started with C++ and Mingw-w64 in Visual Studio Code

官网提供了6种构建方式,以下构建方式采用的是第2种“GCC on Windows”的方式。


构建工程步骤:

1、打开vscode-》选择“扩展”-》搜索箭头所指的四个插件-》分别安装四个插件

2、文件-》新建文件-》helloworld.cpp(或者快捷键ctrl + N直接新建)-》选择编程语言-》保存

3、运行-》以非调试模式运行-》会跳出选择环境的提示,此时选择“C++(GDB/LLDB)”

4、然后会跳出选择编译器配置,这里选择“g++.exe”(C:\Qt\Tools\mingw810_64\bin\g++.exe,这里的mingw的g++版本是我在配置Qt的时候安装的,这些都是通用的,而且这个路径需要加到系统环境变量里面才能被vscode搜索到,所以要先设置系统环境变量,然后在重启vscode。当然,你可以可以配置visio studio的编译环境,其实都比较麻烦呦,配置熟练了其实也很简单)

5、选择好编译环境之后,会自动生成如下图圈出的文件:launch.json和tasks.json(基本上无需修改这两个文件)

  • lanuch.json

  1. {
  2.     // 使用 IntelliSense 了解相关属性。
  3.     // 悬停以查看现有属性的描述。
  4.     // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
  5.     "version": "0.2.0",
  6.     "configurations": [
  7.         {
  8.             "name": "g++.exe - 生成和调试活动文件",
  9.             "type": "cppdbg",
  10.             "request": "launch",
  11.             "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
  12.             "args": [],
  13.             "stopAtEntry": false,
  14.             "cwd": "${fileDirname}",
  15.             "environment": [],
  16.             "externalConsole": false,
  17.             "MIMode": "gdb",
  18.             "miDebuggerPath": "C:\\Qt\\Tools\\mingw810_64\\bin\\gdb.exe",
  19.             "setupCommands": [
  20.                 {
  21.                     "description": "为 gdb 启用整齐打印",
  22.                     "text": "-enable-pretty-printing",
  23.                     "ignoreFailures": true
  24.                 }
  25.             ],
  26.             "preLaunchTask": "C/C++: g++.exe 生成活动文件"
  27.         }
  28.     ]
  29. }

  • tasks.json

  1. {
  2.     "tasks": [
  3.         {
  4.             "type": "cppbuild",
  5.             "label": "C/C++: g++.exe 生成活动文件",
  6.             "command": "C:\\Qt\\Tools\\mingw810_64\\bin\\g++.exe",
  7.             "args": [
  8.                 "-fdiagnostics-color=always",
  9.                 "-g",
  10.                 "${file}",
  11.                 "-o",
  12.                 "${fileDirname}\\${fileBasenameNoExtension}.exe"
  13.             ],
  14.             "options": {
  15.                 "cwd": "${fileDirname}"
  16.             },
  17.             "problemMatcher": [
  18.                 "$gcc"
  19.             ],
  20.             "group": {
  21.                 "kind": "build",
  22.                 "isDefault": true
  23.             },
  24.             "detail": "调试器生成的任务。"
  25.         }
  26.     ],
  27.     "version": "2.0.0"
  28. }

6、在生成以上文件的同时,也会编译出可执行程序helloworld.exe,运行结果如底端所示。当然,如果需要重新编译运行,点击左侧标记2的按钮“运行和调试(快捷键ctrl+shift+D)”即可。

7、至此,vscode从安装-》新建工程-》配置环境-》编译-》运行调试,整个步骤都跑通了,开发C++工程就可以展开了。


3.2.4 Clion

        官网:CLion: A Cross-Platform IDE for C and C++ by JetBrains

        Clion属于JetBrains系列软件。

        (看到 free 30 day,此时心里会不会犹豫要使用它,不过,使用起来确实很方便,用起来还是比较香的,哈哈)


构建项目的步骤:

1、打开clion,文件-》新建项目

2、这里就直接用Cmake进行构建了,而且编写Cmakelists也很方便。(下面有个Qt的选项,是由于之前先安装了Qt,所以这里再安装Clion的时候会自动检测到可用的编译器)

3、看到没,构建工程简单便捷

4、下面是cmakelists文件(用clion写cmakelists是很方便的,不过,其实在开发项目的过程中,除非子项目经常变动,否则cmakelists并无需频繁修改,也就是在整个大项目初期,把cmakelists写个大概,后期其实不依赖于clion也没问题,vim搞定一切,哈哈)

5、点击运行,我们来看看运行结果

6、首先我们可以看下面窗口的cmake结果

7、然后我们来看运行结果

8、至此,在clion中构建项目已经完结,是不是很简单便捷。

        综上,我们可以发现,其实Qt、VScode、Clion都依赖于配置文件,无论是通过json还是pro还是cmakelists,所以还是vs2019对于小白比较友好的,当然,这里的cmakelists其实不是绝对和clion绑定的,Qt、VScode也可以通过cmakelists来编译,VS2019也可以通过cmakelists来编译,而且这是跨平台的开发方案,涉及到跨平台开发的时候,一般我们都脱离不了cmakelists,毕竟大大节省了我们的开发时间,提高了开发效率。

        其实,cmakelists和makefie是同根同源的,因为cmakelists是用来生成makefile的,下面章节我们简单介绍一下这两个玩意儿。


(欢迎关注公众号:aibotlab)

小贴士:

        vs2019:可以用邮箱注册一个账户,登录账户就可以免费使用了

        Qt:可以下载开源的版本使用

        VScode:完全开源

        Clion:免费试用30天,之后不付费无法打开使用(当然,你也可以通过不同的渠道以打折优惠的方式购买使用,有学生版、教师版、开发者、参与开源项目等方式来获取不同的安装使用方式)


3.3 编译工具

        在这里,我们仅对 Makefile 和 Cmake 做简单的介绍,后面文章我们再做详细讨论。

3.3.1 Makefile

        makefile定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,也可以执行操作系统的命令

        makefile是一个写明编译逻辑的自动化执行文件,通过执行make命令,可以将makefile命令逐步执行来编译整个工程,从而构建出所需的程序或软件

        如果你对编译原理有一定了解,学习makefile应该会比较快。

  • makefile示例

  1. SUBDIR=./asr
  2. CLEANSUBDIR=$(SUBDIR)
  3. all:$(SUBDIR)
  4. $(SUBDIR):ECHO
  5. #@cd ..
  6. make -C $@
  7. clean:
  8. -for x in $(SUBDIR) ; do make -C $$x clean; done
  9. ECHO:
  10. @echo $(SUBDIR)

  • 编译命令

  1. make
  2. make clean

3.3.1 Cmake

        官网:CMake

        CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似UNIX下的automake。只是 CMake 的组态档取名为 CMakeLists.txt。Cmake 并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用。这使得熟悉某个集成开发环境(IDE)的开发者可以用标准的方式建构他的软件,这种可以使用各平台的原生建构系统的能力是 CMake 和 SCons 等其他类似系统的区别之处。

  • cmakelists:

  1. cmake_minimum_required(VERSION 3.20)
  2. project(untitled)
  3. set(CMAKE_CXX_STANDARD 14)
  4. add_executable(untitled main.cpp)

构建工程命令步骤示例:

  1. # project name is : test
  2. cd test
  3. mkdir build
  4. cd build
  5. cmake .
  6. make
  7. make install

3.4 Vim

        vim本质是一个文本编辑器,当我们用它配合一些组件时,可以认为它的属性就发生了改变。比如我们可以将 vim 配置成 IDE 工具使用,此时就兼具写代码、编译代码的属性。当我们完全在linux环境工作是,使用 vim 是必不可少的,当然,你可以在服务器上配置一个远程服务,通过Windows端的 IDE 工具来远程执行命令,这样也是不错的。不过有一点,很多开源项目的开发使用,基本首选都是linux,所以多一门技能,就多一份收获。(欢迎关注公众号:aibotlab)


(完结)

《AI人工智能科学》【欢迎关注公众号:aibotlab

我们主要涉及AI理论、算法、应用等方向

致力于分享:AI基础技能、AI基础理论、AI数据集、AI算法、AI微服务、AI职业成长

在技术及应用层面,主要涉及:机器人、自动驾驶、计算机视觉、语音识别、自然语言处理、机器学习、深度学习、推荐系统、pytorch、TensorFlow、kaldi、OpenCV、python、c++、shell、docker、前后端等

算法领域如:人脸识别、指纹识别、2D目标追踪、3D目标追踪、SLAM技术、机器人技术、语义分割、三维重建、边缘检测、OCR、超分辨率、车牌识别、视频理解等;语音识别、语种识别、声纹识别、端点检测、G2P、回声消除、情感识别、音频分类、声源分离、语音降噪、语音克隆、语音翻译、语音增强等;文本分类、机器翻译、对话系统、文本纠错、文本匹配、文本生成、信息检索、阅读理解、知识图谱

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/723987
推荐阅读
相关标签
  

闽ICP备14008679号