linux cpp建立文件夹,Linux小知识之CMake创建工程的一般流程

学习了一点Linux下编译程序的知识,这里总结一下在Ubuntu下使用CMake创建一个工程的一般流程,记录一下详细步骤。

(1)建立一个Test文件夹(作为根目录):

~$ mkdir test

(2)进入test文件夹,分别创建include和src文件夹,同时创建CMakeLists.txt文件:

~$ cd test/

~/test$ mkdir include

~/test$ mkdir src

~/test$ touch CMakeLists.txt

建立完成后,结构如下图所示:

6021c2383e8778ed39dc59144ddc5643.png

其中,include文件夹用于存放各种头文件,src文件夹主要存放各种源代码文件,CMakeLists.txt文件是编译文件,描述如何编译代码等。

(3)进入src目录下,分别新建两个cpp文件:useHello.cpp和libHello.cpp,前者为包含main函数的主文件,后者为库文件,它们的文件内容如下:

(3-1) useHello.cpp

#include "../include/libHello.h"

// 使用 libHello.h 中的 printHello() 函数

int main( int argc, char** argv )

{

printHello();

return 0;

}

(3-2) libHello.cpp

//这是一个库文件

#include

using namespace std;

void printHello()

{

cout<

}

注意:useHello.cpp文件中引用libHello.h头文件需要把路径写正确,否则会提示No such file or directory的错误;

(4)进入test/include路径下,新建一个libHello.h头文件,其内容如下:

#ifndef LIBHELLO_H_

#define LIBHELLO_H_

// 上面的宏定义是为了防止重复引用这个头文件而引起的重定义错误

void printHello();

#endif

(5)最后是修改test文件夹下的CMakeLists.txt文件,其内容如下:

# 声明要求的 cmake 最低版本

cmake_minimum_required( VERSION 2.8 )

# 声明一个 cmake 工程

project( Hello )

# 设置编译模式

set( CMAKE_BUILD_TYPE "Debug" )

# 添加一个库

add_library( hello src/libHello.cpp )

# 共享库

add_library( hello_shared SHARED src/libHello.cpp )

# 添加一个可执行程序

# 语法:add_executable( 程序名 源代码文件 )

add_executable( useHello src/useHello.cpp )

# 将库文件链接到可执行程序上

target_link_libraries( useHello hello_shared )

注意:add_library中添加源文件要写相对路径,即src/libHello.cpp,同样的,

add_executable中添加的源文件也要写相对路径,即src/useHello.cpp,否则会提示No such file or directory的错误。

(6)回到根目录,即Test文件夹下,右键点击Open in Terminal,并输入以下指令:

~$ mkdir build

~$ cd build

~$ cmake ..

~$ make

这里新建了一个中间文件夹“build”,然后进入 build 文件夹,通过 cmake .. 命令,对上一层文件夹,也就是代码所在的文件夹进行编译。这样cmake 产生的中间文件就会生成在 build 文件夹中,与源代码分开。当我们发布源代码时,只要把 build 文件夹删掉即可。

(7)上一步编译完成之后,会在build文件夹下生成一个useHello的可执行文件,执行如下指令即可运行得到结果:

~$./useHello

Hello World

(8)上面这个C++工程经过编译之后的简单架构图如下:(查看结构指令见这里)

c14f68de04d221b4bd47ab94da4932c5.png

其中,build文件夹的内容都是编译过程产生的,可以直接将build文件夹删掉,再执行第6步可重新编译。

标签:src,useHello,CMake,流程,libHello,文件夹,build,Linux,cpp

来源: https://blog.csdn.net/JIEJINQUANIL/article/details/102728603

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值