首页 > 编程知识 正文

sai新手教程,eclipse教程

时间:2023-05-04 12:04:33 阅读:27881 作者:3547

参与linux的开发后,不可避免地需要进行编译构建工作。 直接编辑Makefile不仅需要熟悉Makefile的语法,还需要知道依赖和派生的规则,很麻烦。 另一方面,cmake工具只需要开发人员提供头文件路径、库路径、编译参数等基本参数,就可以快速生成Makefile,语法简单、快捷,而且可以得到cmake工具

使用实际计算机的例子,加深cmake的学习理解吧。

另一方面,最简单的例子是在linux平台下使用cmake来生成和编译Makefile的常规过程包括以下步骤:1、编写cmake配置文件CMakeLists.txt

CMakeLists.txt通常位于项目的顶层目录中,如果需要,也位于子目录中。2、在CMakeLists.txt文件所在目录创建一个build文件夹,然后进入目录。

虽然理论上可以不创建目录,但生成的中间文件很难清理,而且可以定制构建目录名词。 http://www.Sina.com/http://www.Sina.com /

以下是linux C/C最简单的程序,“欢迎使用计算器”。

main.cpp

# include stdio.h # include stdlib.h # include unistd.hint main (welcometocalculator (打印机)! n '; 返回0; }编译它,看看所需的CMakeLists.txt是怎么写的。

#指定使用此CMakeList.txt文件所需的最低cmake版本。 指定cmake _ minimum _ required (版本3.5 )项目信息项目(calculator )设置安装目录set(install_dired ) 目录安装(安装在targetscalculatordestination $ { install _ dir }/usr /纤细的网络上) )

最后运行以下脚本以创建build目录、生成makefile、编译和安装连接:

mkdirbuildcdbuildcmake ./make make install二,多个源文件示例扩展上述示例,添加加法函数,add.cpp和add.h文件。

add.CPPadd.hcmake lists.txt (main.CPP那现在怎么编译增加的文件? 只需简单修改CMakeLists.txt文件。

#指定生成位置,在此添加文件add _ executable (calculator main.CPP add.CPP )。 但是,如果继续添加减法函数,是否要添加sub.cpp和sub.h文件或更多文件?

add.CPPadd.hcmake lists.txtmain.CPPsub.CPP (sub.h可以继续如上添加,但很繁琐

#指定使用此CMakeList.txt文件所需的最低cmake版本。 指定cmake _ minimum _ required (版本3.5 )项目信息项目(计算器)设置安装目录set(install_dired )到当前目录将名称保存到ALL_SRCS变量aux_source_directory(.all_srcs ) #add_executable ) calculator main.CPP add.cpadd.cadd ) )安装目录安装(targetscalculatordestination $ { install _ dir }/usr (纤细

添加的文件如下

add.CPPadd.hcmake lists.txtdivcmake lists.txt ((cmake lists.txt ((div.CPP ) ) )。

pp│ └── mul.h├── sub.cpp└── sub.h

我们看到mul和div文件夹下分别有一个CMakeLists.txt子文件,然后在顶层CMakeLists.txt文件中可以对这个进行包含。

mul目录下的CMakeLists.txt文件:

#查找当前目录下的所有源文件#并将名称保存到MUL_SRCS变量aux_source_directory(. MUL_SRCS)#生成静态链接库add_library(mul STATIC ${MUL_SRCS})#安装到安装目录INSTALL(TARGETS mul DESTINATION ${INSTALL_DIR}/usr/lib)

div目录下的CMakeLists.txt文件:

#查找当前目录下的所有源文件#并将名称保存到DIV_SRCS变量aux_source_directory(. DIV_SRCS)#生成动态链接库add_library(div SHARED ${DIV_SRCS})#安装到安装目录INSTALL(TARGETS div DESTINATION ${INSTALL_DIR}/usr/lib)

其中add_library命令能够将指定的源文件根据参数的不同(STATIC/SHARED)编译为静态或者动态链接库。

顶层目录下的CMakeLists.txt文件:

#指定使用该CMakeList.txt文件需要的cmake最低版本cmake_minimum_required(VERSION 3.5)#指定项目信息project(calculator)#设置安装目录set(INSTALL_DIR ${CMAKE_SOURCE_DIR}/install)#添加子目录add_subdirectory(mul)add_subdirectory(div)#包含头文件目录include_directories(${CMAKE_SOURCE_DIR}/mul)include_directories(${CMAKE_SOURCE_DIR}/div)#查找当前目录下的所有源文件#并将名称保存到ALL_SRCS变量aux_source_directory(. ALL_SRCS)#指定生成目标add_executable(calculator ${ALL_SRCS})#添加链接库target_link_libraries(calculator mul)target_link_libraries(calculator div)#安装到安装目录INSTALL(TARGETS calculator DESTINATION ${INSTALL_DIR}/usr/细腻的网络)

其中,add_subdirectory命令表示本项目包含一个子目录,include_directories命令表示将指定目录添加到编译器的头文件搜索路径之下,target_link_libraries命令表示可执行文件calculator需要连接一个名为 mul/div的链接库。

注:每次CMakeLists.txt变动,需要重新执行cmake …/生成Makefile文件。

本文所用到的源文件和CMakeLists.txt可以在这获得:https://download.csdn.net/download/fddnihao/19132675
cmake教程-提高篇:https://blog.csdn.net/fddnihao/article/details/117370344

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。