四时宝库

程序员的知识宝库

C++工程构建常用工具有哪些?(c++新建工程选哪个)

在项目结构复杂的情况下,通过gcc/g++命令进行直接编译会带来很大的不便,因此使用Makefile构建工具。

通用构造工具

(Makefile)、CMake(CMakelists)

Mark

make工具是从Makefile文件中“读”并执行编译指令。

Mark是如何工作的

一、make在当前目录下查找名为“Makefile”或“makefile”的文件。

二、如果找到了,它将在文件中以target目标文件的形式查找第一个目标文件。

三,根据target目标文件的prerequisites,执行相应的target生成目标文件,并最终生成它。

四、如果target目标文件存在,则根据所依赖的后面的.o文件是否比target目标文件修改时新,来判断是否需要重新生成target目标文件。

Makefile介绍

makefile是一个文件,其中包含一堆有组织的gcc/g++编译命令。

Makefile语法格式

target: prerequisites
            command 12复制代码类型:[cpp]

target也就是目标文件,它可以是ObjectFile或执行文件,也可以是标签(标签)

prerequisites是生成该目标所需的文件或目标文件。

而command就是make需要执行的外壳命令。

生成文件的示例

main.out:main.o sub.o add.o
 gcc -lstdc++ main.o sub.o add.o -o main

sub.o:sub.cpp
 gcc -c sub.cpp -o sub.o

add.o:add.cpp
 gcc -c add.cpp -o add.o

main.o:main.cpp
 gcc -lstdc++ -c main.cpp -o main.o1234567891011复制代码类型:[html]

使用命令

例如,执行make命令会生成执行程序。

CMake

作为一个跨平台的编译工具,CMake比make更加先进,并且使用起来更加方便。cMake主要是编写CMakeLists.txt文件,然后使用Cmake命令将CMakeLists.txt文件转换成Makefile文件,最后使用make命令对源代码进行编译,生成可执行程序或共享库。

CMakelists介绍

当项目规模很大的时候,用手写Makefile会变得很复杂,你需要在不同的目录下写不同的Makefile,可能有很多。这时,CMakelists就可以使用更简单的写法生成相应的Makefile文件。

二、软件要跨平台,必须保证能够在不同的平台进行编译。而且,如果使用上述Make工具,您必须为每种平台编写一次Makefile;CMake可以通过CMakeLists.txt文件生成特定平台的标准Makefile文件。

CMakelists示例

# 指定cmake最低版本
cmake_minimum_required(VERSION 3.15)
# 设置项目名称
project(HELLO)
# 设置变量
set(CMAKE_CXX_STANDARD 14)
# 创建可执行程序工程(
add_executable(HELLO main.cpp add.cpp sub.cpp sub.h)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接