Linux下C++文件的g++和cmake编译方式使用介绍

10 篇文章 0 订阅

Linux下C++文件的g++和cmake编译方式使用介绍

虽然现在在编写C++工程时有各类IDE可供选择,但通过这篇文章,希望能够更深入地理解各类IDE在编译C++代码时的底层原理。

首先新建一个简单的源文件Hello.cpp进行后续测试

#incldue<iostream>
using namespace std;

int main(int argc, char **argv){
	cout << "Hello" <<endl;
	return 0;
}

1.g++编译

终端输入:

g++ Hello.cpp

若出现"command not found"的报错,说明可能还未安装g++,则可以使用如下命令安装g++:

sudo apt-get install g++

若执行顺利,这条命令应该没有任何输出,但在当前目录下会出现一个a.out文件,并且该文件具有执行权限,此时在终端中输入./a.out即可运行此程序。

$ ./a.out
Hello

这里需要说明的是,为了有最直观的感受,以上例子使用了大量的默认参数,几乎省略了所有中间参数。g++默认把源文件编译成a.out文件(也可以自己指定可执行文件的名称)。

2.cmake编译

cmake编译是现在在工程中广泛使用的编译方式。在一个cmake工程中,我们会使用cmake命令生成一个makefile文件,然后,用make命令根据这个makefile文件的内容来编译整个工程。
首先,我们需要在目录下新建一个CMakeLists.txt文件,内容如下:

#声明要求的cmake最低版本
cmake_minimum_required(VERSION 2.8)

#声明一个cmake工程
project(Hello)

#添加一个可执行程序
#语法:add_executable(程序名 源代码文件)
add_executable(hello Hello.cpp)

CMakeLists.txt文件的作用是告诉cmake要对这个目录下的文件做哪些操作。其格式需要遵循cmake的语法。然后就可以调用cmake对该工程进行cmake编译:
终端输入:

cmake .

cmake后的一个点表示在当前目录下进行cmake
cmake编译成功后就可以在目录下找到一个可执行文件Hello,执行该文件即可得到源文件输出:
终端输入:

$ ./Hello
Hello

但同时也会发现,cmake编译后会产生大量的中间文件,我们不希望自己代码发布出去后带有这么多中间文件。所以在编译工程的时候,我们通常创建一个build文件夹专门用来存放编译过程中产生的中间文件,在代码发布时可以将build文件夹删除。
利用build文件夹保存中间文件进行编译的过程如下:
终端输入:

mkdir build
cd build
cmake ..
make

后续操作与上面相同。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值