cmake学习(二)常用变量和常用环境变量

一、变量的引用方式是使用“${}”,在IF中,不需要使用这种方式,直接使用变量名即可
二、自定义变量使用SET(OBJ_NAME xxxx),使用时${OBJ_NAME}
三、cmake的常用变量:
CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR:
这三个变量内容一致,如果是内部编译,就指的是工程的顶级目录,如果是外部编译,指的就是工程编译发生的目录。
CMAKE_SOURCE_DIR,PROJECT_SOURCE_DIR,_SOURCE_DIR:
这三个变量内容一致,都指的是工程的顶级目录。
CMAKE_CURRENT_BINARY_DIR:外部编译时,指的是target目录,内部编译时,指的是顶级目录
CMAKE_CURRENT_SOURCE_DIR:CMakeList.txt所在的目录
CMAKE_CURRENT_LIST_DIR:CMakeList.txt的完整路径
CMAKE_CURRENT_LIST_LINE:当前所在的行
CMAKE_MODULE_PATH:如果工程复杂,可能需要编写一些cmake模块,这里通过SET指定这个变量
LIBRARY_OUTPUT_DIR,BINARY_OUTPUT_DIR:库和可执行的最终存放目录
PROJECT_NAME:你猜~~

四、cmake中调用环境变量
1.Using $ENV{NAME} : invoke system environment varible.
We can use "SET(ENV{NAME} value)" as well. note that the "ENV" without "$".
2.CMAKE_INCLUDE_CURRENT_DIR equal to INCLUDE_DIRECTORY(${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})

五、其他的内置变量
1.BUILD_SHARED_LIBS:set the default value when using ADD_LIBRARY()
   ON 或 OFF
2.CMAKE_C_FLAGS: set compiler for c language
2.CMAKE_CXX_FLAGS: set compiler for c++ language

六、区分debug和release
在工程目录下,cmake -DCMAKE__BUILD_TYPE=DEBUG(RELEASE),再执行make

七、指定编译32bit或64bit程序
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

if和case用法比较

Case语句时并发语句,需要采用并行逻辑来实现,不存在逻辑的优先级别。If……else语句时多级嵌套语句,通常采用逻辑的串联来实现,该结构具有优先级别问题。这两种结构分别如下图所示: Always (a or b or c or d or s[1:…

CMake的使用

一、 基本使用 安装:下载二进制包后可直接解压使用 从源码安装则执行命令:./bootstrap; make; make install——尝试执行bootstrap失败 使用:cmake dir_path,生成工程文件或makefile文件 二、 概念 out-of-source …

PHP实训笔记,【学习笔记19】实验吧 让我进去

知识点MD5拓展攻击解题思路打开网站后看到,什么都没有,尝试抓包分析360截图17860604827894.PNGBurp 抓包发现,Cookie有东西。先是把source0改成source1,得到源码。、、、$flag "XXXXXXXXXXXXXXXXXXXXXXX";$secret "XXXXXXXX…

CMake PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR区别

看了好多网上的文章,都说PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。 实际不然。 一般来说,都是这样用 cmake ./ 这样PROJECT_BINARY_DIR和PROJECT_SOURCE_DIR是等价的。也就是当前源码的目录。 如果执行cmake的时候,并不在源码…

toolStrip 按钮图片大小的修改

http://www.cnblogs.com/smallsoftfox/archive/2012/06/21/2558323.html转载于:https://www.cnblogs.com/PatrickLee/p/3526708.html

oracle11g数据文件路径,oracle11g trace路径和diagnostics路径的变化

Oracle11g中trace文件和日志文件的路径发生了变化在$ORACLE_BASE/diag建立了一些分类目录,用来保存各种日志:[oraclerac1 trace]$ cd $ORACLE_BASE[oraclerac1 oracle]$ cd diag[oraclerac1 diag]$ pwd/u01/app/oracle/diag[oraclerac1 diag]$ lsasm cli…

qt for v210

1. v210本身自带了qt4.8.4的qt库,路径在/usr/lib下面。但是我们需要对屏幕进行90度旋转。因此需要重新编译qt库。 我们编译了qt4.8.5的qt库,把/usr/lib下面libQt*删除,将编译好的libQt*拷贝过来即可。 2. 因为我们只用自己增加的文泉驿字体&…

DataGridView数据导入到Excel 中

#region DataGridView数据显示到Excel /// <summary> /// 打开Excel并将DataGridView控件中数据导出到Excel /// </summary> /// <param name"dgv">DataGridView对象 </param> /// <param name"isShowExcle">是…

cmake学习(一)静态库与动态库构建

(.so)共享库&#xff0c;shared object&#xff1a;节省空间&#xff0c;在运行时去连接&#xff0c;如果执行机器上没有这些库文件就不能执行。(.a)静态库,archive&#xff1a;静态库和程序化为一体&#xff0c;不会分开。通过 ldd命令可以查看一个可执行程序所依赖的的共享库…

oracle查表占的物理空间,查询Oracle表实际物理使用大小

Oracle中有两种含义的表大小一种是分配给一个表的物理空间数量&#xff0c;而不管空间是否被使用。可以这样查询获得字节数&#xff1a;select segment_name, bytesfrom user_segmentswhere segment_type TABLE;效果如下&#xff1a;或者Select Segment_Name,Sum(bytes)/1024/…

分布模式

Remote Facade远程外观 在OO模型中,存在很多规模小,且有小方法的对象.这些小对象会导致很多的对象间交互.在单一地址空间里,小对象没问题.但是,当在两个进程间做调用时,频繁的跨进程交互会造成性能开销.远程外观,减少远程调用的次数. 建立在大量的细粒度对象之上,提供一个粗粒度…

oracle分区表带入SQL语句,Oracle 分区表常用SQL语句 (转载)

*********为分区表建立一个单独的表空间*********/create tablespace ts_partition datafile /home/oracle/oradata/esales/partition.dbf size 10Mextent management local uniform size 2M;/*********建立分区表*********/create table bigtable(sale_date date,product_id n…

QT中PRO文件写法的详细介绍

在QT中&#xff0c;有一个工具qmake可以生成一个makefile文件&#xff0c;它是由.pro文件生成而来的&#xff0c;.pro文件的写法如下&#xff1a; 1. 注释 从“#”开始&#xff0c;到这一行结束。 2.模板变量告诉qmake为这个应用程序生成哪种makefile。下面是可供使用的选择&am…

POJ 2485 Highways(最小生成树 Prim)

Highways大意&#xff1a;给你一个用邻接矩阵形式存储的有n个顶点的无向图&#xff0c;让你求它的最小生成树并求出在这个生成树里面最大的边的权值。 思路&#xff1a;用Prim求&#xff0c;判断条件改一下就行。 PS&#xff1a;dis数组初始化的时候用memset一直RE&#xff0c;…

oracle10g rac启动,ORACLE 10G RAC启动与关闭

rootnode-rac1 ~]# su - oracle关闭node-rac1[oraclenode-rac1 ~]$ cd /app/crs/product/10201/crs/bin/[oraclenode-rac1 bin]$ ./srvctl stop instance -d racdb -i racdb1[oraclenode-rac1 bin]$ ./srvctl stop asm -n node-rac1[oraclenode-rac1 bin]$ ./srvctl stop nodea…

iwconfig的用法(转)

1. 打开无线网卡电源iwconfig wlan0 txpower on2. 列出区域内的无线网络iwlist wlan0 scan3. 假设要连接到网络MyHome&#xff08;即essid为MyHome的网络&#xff09;&#xff0c;那么输入命令iwconfig wlan0 essid “MyHome” 如果网络是加密的&#xff0c;密码是0123456789&a…

oracle用户获取datameta权限,Oracle数据库提权(低权限提升至dba)

0x01 Oracle存储过程”缺陷”在 Oracle 的存储过程中&#xff0c;有一个有趣的特点&#xff1a;运行权限。运行权限分为两种&#xff0c;definer 和 invoker。definer 为函数创建者的权限&#xff0c;而 invoker 则是当前调用函数的用户。运行权限在函数创建时就已经被钦定了&a…

__thread 和 __typeof__关键字

__thread:在多线程变成中&#xff0c;使用于global变量&#xff0c;使每个线程都私有一份。static __thread int count;void *function1(void *argc){printf("porgran pid:%u, the function1 pthread id is %lu, count:%d\n",getpid(), pthread_self(), count);count…

RSA openssl_public_encrypt false

这个问题困扰了我好久&#xff0c;最后发现&#xff0c;原来这个函数只能最大长度为117个字节。如果加密的串超过这个长度&#xff0c;就会返回false。转载于:https://www.cnblogs.com/gpfeisoft/p/3533479.html

linux将文件下载到本地windows,XSHELL下直接下载文件到本地(Windows)

xshell很好用,然后有时候想在windows和linux上传或下载某个文件,其实有个很简单的方法就是rz,sz首先你的Ubuntu需要安装rz.sz(如果没有安装请执行以下命令,安装完的请跳过.其它版本linux请自行安装相应软件)yum install lrzsz安装完毕即可使用rz&#xff0c;sz是便是Linux/Uni…