找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 14|回复: 0

CMake编译软件

[复制链接]

32万

主题

0

回帖

96万

积分

超级版主

积分
964681
发表于 2025-3-14 10:57:18 | 显示全部楼层 |阅读模式
软件标签:  cmake   编程工具
cmake安装能够通过最方便的打包测试以及构建编程服务等功能,帮助用户们实现最佳的编译器环境的设置,让你能够更好的进行各类编程开发服务,支持独立文件的配置功能,更好的解决各类编程问题!
cmake下载安装使用介绍
cmake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件,能测试编译器所支持的c++特性,类似unix下的automake。
cmake教程
运行gui的cmake界面:




执行configure:

运行之后,生成了如下文件:




生成makefile:

执行generate之后生成如下文件:




运行make进行编译:




编译完成后,在build目录生成tutorial.exe,运行tutorial.exe 25就可以看到运行结果:




运行make install安装程序:




运行make test进行测试:



特色介绍
cmake是一款免费实用的编程工具,旨在构建、测试和软件打包。该软件是用于控制软件使用简单的平台和编译器编译过程独立配置文件。cmake生成本机makefile和工作区,可以使用您所选择的编译器环境。
cmake 使用方法
cmake的所有的语句都写在一个叫:cmakelists.txt 的文件中。当cmakelists.txt文件确定后,可以用ccmake命令对相关 的变量值进行配置。这个命令必须指向cmakelists.txt所在的目录。配置完成之后,应用cmake命令生成相应的makefile(在unix like系统下)或者 project文件(指定用window下的相应编程工具编译时)。

其基本操作流程为:

$> ccmake directory

$> cmake directory

$> make

其中directory为cmakelist.txt所在目录;

第一条语句用于配置编译选项,如vtk_dir目录 ,一般这一步不需要配置,直接执行第二条语句即可,但当出现错误时,这里就需要认为配置了,这一步才真正派上用场;

第二条命令用于根据cmakelists.txt生成makefile文件;

第三条命令用于执行makefile文件,编译程序,生成可执行文件;

cmake的执行就是这么简单,其难点在于如何编写cmakelists.txt文件,下面结合例子简单介绍cmakelists.txt的编写,看下面这个cmakelists.txt

#project name

project(test_math)

#head file path

include_directories(

include

)

#source directory

aux_source_directory(src dir_srcs)

#set environment variable

set(test_math

${dir_srcs}

)

#set extern libraries

set(libraries

libm.so

)

#add executable file

add_executable(../bin/bin ${test_math})

#add link library

target_link_libraries(../bin/bin ${libraries})

或者用下面这个cmakelists.txt

#project name

project(test_math)

#head file path

include_directories(

include

)

#source directory

aux_source_directory(src dir_srcs)

#set environment variable

set(test_math

${dir_srcs}

)

#add executable file

add_executable(../bin/bin ${test_math})

#add link library

target_link_libraries(../bin/bin m)

这是一个测试数学函数的程序的cmakelists.txt,"#"后面为注释的内容,cmake的命令全部为大写

第2行指定生成的工程名为test_math

第4行指定头文件目录为include

第8行指定源文件目录为src,并将其赋值给环境变量dir_srcs

第10行设定环境变量test_math的值为环境变量dir_srcs的值,此处用于显示如何用环境变量对环境变量进行赋值

第14行将数学函数库赋值给环境变量libraries,当然,可以不用这个环境变量,而在后面直接使用该库名

第18行用于指定生成文件,将环境变量test_math目录下的所有文件编译生成../bin目录下的可执行文件bin

第20行指定../bin/bin执行时的链接库为环境变量libraries的值-libm.so

下面给出源文件

/src/main.
c:
#include<stdio.h>

#include"../include/a.h"

int main()

{

double b=25.0;

double a=0.0;

a=get_sqrt(b);

printf("a is %lf, b is %lf
",a,b);

return 0;

}

/src/a.c

#include"../include/a.h"

double get_sqrt(double var1)

{

return sqrt(var1);

}

/include/a.h

#ifndef ?a_file_header_inc

#define ?a_file_header_inc

#include<math.h>

double get_sqrt(double var1);

#endif

将cmakelists.txt放在当前目录下,执行cmakelists.txt

$> cmake .

$> make

即可生成可执行文件,在目录/bin下的bin文件,好了运行看其效果是否和所想一样。


aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|ziyuan80.com

GMT+8, 2025-8-14 18:32 , Processed in 0.075205 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表