CMake-添加编译时选项的几种方式

1. add_compile_options(<option> ...) :可以给当前目录以及当前目录以下的目录的 sources 添加编译选项。

2. target_compile_definitions :

1 target_compile_definitions(<target>
2   <INTERFACE|PUBLIC|PRIVATE> [items1...]
3   [<INTERFACE|PUBLIC|PRIVATE> [items2...] ...])

  是给给定的 <target> 添加编译选项, <target> 指的是由 add_executable() 产生的可执行文件或 add_library() 添加进来的库。 <INTERFACE|PUBLIC|PRIVATE> 指的是 [items...] 选项可以传播的范围, PUBLIC and INTERFACE  会传播 <target> 的 INTERFACE_COMPILE_DEFINITIONS 属性, PRIVATE and PUBLIC 会传播 <target> 的 COMPILE_DEFINITIONS 属性。

3.  add_definitions(-DFOO -DBAR ...) :可以给当前目录以及当前目录以下的目录的 sources 添加编译行命令。如 cmake . 这样的在命令行输入的命令。cmake的命令格式如下:

1 cmake [<options>] (<path-to-source> | <path-to-existing-build>)
2 cmake [(-D<var>=<value>)...] -P <cmake-script-file>
3 cmake --build <dir> [<options>] [-- <build-tool-options>...]
4 cmake -E <command> [<options>]
5 cmake --find-package <options>...

   [<options>] 可以是 -C, -D, -U... 之类的选项,这个 add_definitions(-DFOO -DBAR ...) 函数可以添加任意选项,但主要是用来添加 -D 选项。

时间: 2024-11-08 18:09:02

CMake-添加编译时选项的几种方式的相关文章

extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html

extjs对组件添加监听的三种方式 在定义组件的配置时设置 如代码中所示: Java代码 xtype : 'textarea', name : 'dataSetField', labelSeparator:'', fieldLabel:'', hideLabel: true, allowBlank: true, height: mainPanelHeight*0.8, anchor:'99%', listeners:{'blur':function(){ alert(1); }} 对组件变量通过

servlet之session添加和移除的两种方式

Java Session 介绍 一.添加.获取session 1.项目结构 2.jar包 3.web.xml文件 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns

解释器在解析JavaScript代码时对于这两种方式

本文结合一些周知的概念和源码片段,对View动画的工作原理进行挖掘和分析.以下不是对源码一丝不苟的分析过程,只是以搞清楚Animation的执行过程.如何被周期性调用为目标粗略分析下相关方法的执行细节,最终贯穿View动画实际发生的一切. 是一个标准化和轻便的能够运行在各种各样并行计算机上的消息传递系统.消息传递指的是并行执行的各个进程拥有自己独立的堆栈和代码段,作为互不相关的多个程序独立执行,进程之间的信息交互完全通过显示地调用通信函数来完成. MJRefresh这个刷新控件是一款非常好用的框

WebKit JavaScript Binding添加新DOM对象的三种方式

一.基础知识 首先WebKit IDL并非完全遵循Web IDL,只是借鉴使用.WebKit官网提供了一份说明(WebKitIDL),比如Web IDL称"operation”(操作), 而WebKitIDL称为"method"(方法), 另外Web IDL也不像WebKitIDL那样将属性和参数分开. 为JavaScript绑定对象,可以使用module来定义所从属的模组. 典型的module包括: core, window, event, traversal, range

SQLPlus在连接时通常有四种方式

1.sqlplus / as sysdba 操作系统认证,不需要数据库服务器启动listener,也不需要数据库服务器处于可用状态.比如我们想要启动数据库就可以用这种方式进入 sqlplus,然后通过startup命令来启动. 2.sqlplus username/password 连接本机数据库,不需要数据库服务器的listener进程,但是由于需要用户名密码的认证,因此需要数据库服务器处于可用状态才行. 3. sqlplus usernaem/[email protected] 通过网络连接

关于java编译时注解你需要知道的二三事。解除你的顾虑!

转载请注明出处: http://blog.csdn.net/liu470368500/article/details/51316066 做Android开发.大家肯定会关心你的app的性能问题.不知道从何时开始.网上有流传一句.不要使用注解.用注解会影响性能.这不能说错.但是也不能说对.这里普及一下关于注解的一些你需要知道的知识 网上常说的注解.基本是运行时注解.而所说的注解会影响性能.则是指的此类型的注解.因为运行时注解的解析.完全依赖于反射.而反射的效率.是比原生的慢的.特别是对于原先的老机

Skype for business/Lync之证书解析(四)证书申请的四种方式

有四种方式进行证书申请,这四种方式不仅适合skype/lync,也适合任何证书申请场景(除了第一种方式): 第一种方式:在SFB/LYNC安装界面中用证书向导自动生成与分配证书,操作最简单,但生成的证书导出时不能导出私钥. 第二种方式:通过MMC,参见本系列之http://huoxian.blog.51cto.com/9437529/1680132 第三种方式:通过web 通过web申请需要使用ssl加密连接,即采取https://ca/certsrv方式,默认没有https,请增加https连

Spark SQL初始化和创建DataFrame的几种方式

一.前述       1.SparkSQL介绍 Hive是Shark的前身,Shark是SparkSQL的前身,SparkSQL产生的根本原因是其完全脱离了Hive的限制. SparkSQL支持查询原生的RDD. RDD是Spark平台的核心概念,是Spark能够高效的处理大数据的各种场景的基础. 能够在Scala中写SQL语句.支持简单的SQL语法检查,能够在Scala中写Hive语句访问Hive数据,并将结果取回作为RDD使用.     2.Spark on Hive和Hive on Spa

[ c++] cmake 编译时 undefined reference to `std::cout&#39; 错误的解决方案

cmake ..  和 make 之后,出现如下错误 Linking CXX executable ../../../bin/ModuleTest CMakeFiles/ModuleTest.dir/tmp.cpp.o: In function `main': /ModuleTest/tmp.cpp:4: undefined reference to `std::cout' tmp.cpp 内容如下 1 #include <iostream> 2 3 int main(){ 4 std::co