cmake用法及常用命令总结(全)

本文总结了CMake的使用方法,包括设置输出目录、区分debug和release、添加环境变量、复制依赖dll、宏定义以及与MFC和Qt的集成。通过示例介绍了CMAKE_RUNTIME_OUTPUT_DIRECTORY、CMAKE_ARCHIVE_OUTPUT_DIRECTORY等变量的使用,帮助开发者更好地管理和组织项目构建。
摘要由CSDN通过智能技术生成

CMakeLists.txt 的语法比较简单,由命令、注释和空格组成,其中命令是不区分大小写的。指令是大小写无关的,参数和变量是大小写相关的。但推荐全部使用大写指令。符号 # 后面的内容被认为是注释。命令由命令名称、小括号和参数组成,参数之间使用空格进行间隔。

自己写了一个小例子,包含了静态库和动态库以及基本的依赖关系。

按照目录结构加入文件(筛选器)
#按目录结构加入文件
macro(create_filters source_files)
    if(MSVC)
        # 获取当前目录
        set(current_dir ${
   CMAKE_CURRENT_SOURCE_DIR})
        foreach(src_file ${
   ${
   source_files}})
            # 求出相对路径
            string(REPLACE ${
   current_dir}/ "" rel_path_name ${
   src_file})
            # 删除相对路径中的文件名部分
            string(REGEX REPLACE "(.*)/.*" \\1 rel_path ${
   rel_path_name})
            # 比较是否是当前路径下的文件
            string(COMPARE EQUAL ${
   rel_path_name} ${
   rel_path} is_same_path)
            # 替换成Windows平台的路径分隔符
            string(REPLACE "/" "\\" rel_path ${
   rel_path})
            if(is_same_path)
                set(rel_path "\\")
            endif(is_same_path)

            # CMake 命令
            source_group(${
   rel_path} FILES ${
   src_file})
        endforeach(src_file)
    endif(MSVC)
endmacro(create_filters)


#用法
#所有文件保存在一个变量中		
file(GLOB_RECURSE all_files *.h *.cpp *.c *.cc) 
create_filters(all_files)

add_executable(MFCDemo
               ${
   all_files}			   
			   )
根据debug和release自动区分表示debug和release文件夹
#debug版本$(Configuration)表示debug文件夹
link_directories(${
   PROJECTS_PATH}/out/$(Configuration))

将当前目录添加到环境变量中

可以用bat命令

setx ZYB_MEDIA_DIRECTORY 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值