C++学习-1(各种编译器,以及qt下使用qmake,cmake,linux下使用cmake管理)

一、基础C++
1、g++和gcc都是ubuntu系统自带的,是一套的,因此很多使用都是一样的,
2、g++ -v查看C++编译器版本号,可以查看出
x86_64-linux-gnu
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)
我们使用的是Ubuntu版本16,04,x86版本的gcc编译版本是5.4
3、-std=c++xx指定编译时使用的C++标准
我们当前使用的gcc编译器版本是支持很多c++标准的,记得这是两个东西。
g++ hello.cpp -std=C++11 表示我们用C++11标准来编译这个文件。
可以使用man手册 man g++进行相关的查看
4、C++在在不同平台有不同的编译链MSVC MinGW GNU(gcc g++) Clang
MSVC 是微软提供的,需要结合微软的一些库才能使用,
MinGW 其实就是linux下GNU也就是g++的一层封装,可以在windows下使用,qt中就是使用这个的

二;QT介绍安装
下载官网;http://download.qt.io/official_releases
1、qtcreator完整运行需要Kits(构建套件),包括编译器、调试器、工程管理器等;
一个单纯的qt软件是没有用的,需要一整套的构建套件才能完成程序的编译,然而选择不同的构建套件就可以完成对相同程序的编译生成不同平台的可执行程序。这也是qt跨平台的,而java跨平台是编译出来的就可以直接在有java环境下可以使用了。与qt有一点不同。
2、基于qtcreator的搭建可以独立搭建,也可以整体一次性搭建。我们可以选择已经集成了的qt软件,那么久不同自己手动安装,但是在嵌入式开发过程中因为涉及到交叉编译工具链,和编译的可执行程序要到不同的特殊平台上去运行,因此这个需要要自己构建套件,也别人也无法有集成套件的qt软件。
PS;如果安装的时候第二步没有skip可以先断网安装过了那一步之后再连接。
3、在安装选择套件的时候最好一次性选择全,因为不支持后续增加的,除非删除重来。
在Developer and Designer Tools;
选择调试桥套件,和MinGW编译器版本的64位或和23位,并且在QT上面选择对应的配套工具,其中也可以所选sources是QT的源码,可以查看一些东西。
PS;安装的时候可以吧防火墙软件关掉,因为有些东西会被禁止。
4、linux下qt安装也是,只要去官网下载linux下可以执行在run后缀,在linux下直接执行就可以了,
5、qmake和cmake编译执行。
在这里插入图片描述
在这里插入图片描述

三、CMake
MakeFile 对复杂项目的管理编译方便编译链接的过程,但是其语法过于晦涩,我们也只是能看懂,修改,如果要去写出来还是很难的,因此也就出现了Cmake,这种基于MakeFile上的轻量级的。
Cmake其实就是在Makefile上进行了一层封装,其提供了比较简单的语法,我们写出来编译Cmake会自动生成出配套的Makefile而不用我们去书写语法晦涩的MakeFile文件。

cmake的安装;
下载官网;https://cmake.org/download/下载源码
解压缩之后,
安装:执行./bootstrap;可能会安装失败则一般根据提示语句是需要安装OpenSSL库的安装,可以根据网上的步骤进行安装,注意安装的时候可能需要权限的,如果使用sudo还不能解决,则表示安装库的脚步不支持sudo的方式,需要切换到root目录去安装,之后记得返回到当前用户名下,因为库的安装的变量是绑定用户名的。
https://blog.csdn.net/weixin_34072159/article/details/86028584
make一下;
之后再Cmake --Version查看有没有安装成功就可以了

cmake初步使用
(1)文件名为:CMakeLists.txt(必须命名为这个)
(2)内容示例:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8) #最低版本要求
SET(CMAKE_CXX_COMPILER “g++”) #设置g++编译器
PROJECT(Hello) #设置工程名
MESSAGE(STATUS “test project hello world”) #打印消息
ADD_EXECUTABLE(hello hello.cpp) #生成可执行文件

实际
在这里插入图片描述

一些工具链接
链接:https://pan.baidu.com/s/1xgjxJsg9m4yLfAapTFpBxg
提取码:oq96
复制这段内容后打开百度网盘手机App,操作更方便哦

猜你喜欢

转载自blog.csdn.net/zw1996/article/details/105178639