菜鸟笔记
提升您的技术认知

【cmake】cmake 编译选项设置-ag真人游戏

cmake】cmake 编译选项设置

cmakelists.txt中可以通过修改cmake内置的环境变量来改变c或c 的编译选项.

编译选项相关的cmake 变量如下:

cmake_c_flags = 
cmake_c_flags_debug = -g
cmake_c_flags_minsizerel = -os -dndebug
cmake_c_flags_release = -o3 -dndebug
cmake_c_flags_relwithdebinfo = -o2 -g -dndebug
cmake_cxx_flags = 
cmake_cxx_flags_debug = -g
cmake_cxx_flags_minsizerel = -os -dndebug
cmake_cxx_flags_release = -o3 -dndebug
cmake_cxx_flags_relwithdebinfo = -o2 -g -dndebug

等号右边是通过在cmakelists.txt中打印对应变量得到的默认值。

对于c语言设置cmake_c_flags相关参数,c 语言设置cmake_cxx_flags相关参数。并且分为debugreleaseminsizerelrelwithdebinfo四种类型。

以c 语言编译选项为例:

  • cmake_cxx_flags_debug:编译debug版本的时候会采用的编译选项,默认只有一个-g选项,包含调试信息;

  • cmake_cxx_flags_release:编译release版本的时候采用的编译选项,默认包-o3选项,该选项表示优化等级;

  • cmake_cxx_flags_minsizerel:主要减小目标文件大小,选项-os就是这个作用;

  • cmake_cxx_flags_relwithdebinfo:包含调试信息的release版本,-o2和-g,优化的同时也包含了调试信息;

  • cmake_cxx_flags:这个选项没有默认值;

顾名思义,当cmake在编译项目的时候,选项为debug则会采用cmake_cxx_flags_debug选项,编译release则会采用cmake_cxx_flags_release选项,因此,需要设置编译选项的时候,在cmakelists.txt中设置这些变量就可以了。

实际上可以分别设置cmake_cxx_flags_debugcmake_cxx_flags_release,如下:

set(cmake_cxx_flags_debug "${cmake_cxx_flags_debug} -std=c  11 -wl,-rpath=../lib")
set(cmake_cxx_flags_release "${cmake_cxx_flags_release} -std=c  11 -g")

上面的设置两个都有-std=c 11,这个选项是一个公共的选项,不管是release还是debug都需要设置。这种情况还可以把公共的设置放在cmake_cxx_flags变量里面,如下:

set(cmake_cxx_flags "${cmake_cxx_flags} -std=c  11")
set(cmake_cxx_flags_debug "${cmake_cxx_flags_debug}  -wl,-rpath=../lib")
set(cmake_cxx_flags_release "${cmake_cxx_flags_release} -g")

因为在最终编译的时候的编译选项不管是release还是debug都包含了cmake_cxx_flags这个变量。

网站地图