1. INCLUDE_DIRECTORIES引入头文件搜索路径

INCLUDE_DIRECTORIES([AFTER|BEFORE] [SYSTEM] dir1 dir2 …)

这条指令可以用来向工程添加多个特定的头文件搜索路径,路径之间用空格分割,如果路径
中包含了空格,可以使用双引号将它括起来,默认的行为是追加到当前的头文件搜索路径的
后面,你可以通过两种方式来进行控制搜索路径添加的方式

  • CMAKE_INCLUDE_DIRECTORIES_BEFORE,通过 SET 这个 cmake 变量为 on,可以
    将添加的头文件搜索路径放在已有路径的前面。

  • 通过 AFTER 或者 BEFORE 参数,也可以控制是追加还是置前
    eg.

 INCLUDE_DIRECTORIES(/usr/include/hello)

2. LINK_DIRECTORIES(directory1 directory2 …)

这个指令非常简单,添加非标准的共享库搜索路径。

eg. 在工程内部同时存在共享库和可执行二进制,在编译时就需要指定一下这些共享库的路径。

TARGET_LINK_LIBRARIES 的全部语法是:
TARGET_LINK_LIBRARIES(target library1 <debug | optimized> library2 …)
这个指令可以用来为 target 添加需要链接的共享库,本例中是一个可执行文件,但是同样
可以用于为自己编写的共享库添加共享库链接

eg.
TARGET_LINK_LIBRARIES(main libhello.so)
这里的 hello 指的是我们上一节构建的共享库 libhello

ldd src/mainlinux-gate.so.1 => (0xb7ee7000)
libhello.so.1 => /usr/lib/libhello.so.1 (0xb7ece000)
libc.so.6 => /lib/libc.so.6 (0xb7d77000)
/lib/ld-linux.so.2 (0xb7ee8000)

可以清楚的看到 main 确实链接了共享库 libhello,而且链接的是动态库libhello.so.1

将 TARGET_LINK_LIBRRARIES 指令修改为:
TARGET_LINK_LIBRARIES(main libhello.a)

重新构建后再来看一下 main 的链接情况

ldd src/main
linux-gate.so.1 => (0xb7fa8000)
libc.so.6 => /lib/libc.so.6 (0xb7e3a000)
/lib/ld-linux.so.2 (0xb7fa9000)

cmake (2)路径指令相关推荐

  1. cmake find_package路径详解

    cmake find_package路径详解 转自:https://zhuanlan.zhihu.com/p/50829542 经常在Linux下面写C++程序,尤其是需要集成各种第三方库的工程,肯定 ...

  2. CMake中include指令用法介绍

    转载于:  https://blog.csdn.net/liitdar/article/details/81144461 本文主要介绍CMake中include指令的用法. 1 概述 引用CMake官 ...

  3. cmake 构建路径_基于CMake构建系统的MLIR Example扩展

    上一篇文章讲了把pybind11的示例程序嵌入到了MLIR的Example中,但是在构建的过程中有一定运气成分,并不知道具体是怎么通过CMake构建系统编译出的共享库文件.在分析了MLIR各层级的CM ...

  4. 【CMake】cmake的install指令

    在cmake的时候,最常见的几个步骤就是: mkdir build && cd build cmake .. make make install 那么,make install的时候, ...

  5. cmake 构建路径_新手必备:win10 系统下 VSCode+CMake+Clang+GCC 环境的搭建

    打算用C/C++把基本的数据结构与算法实现一遍, 为考研做准备, 因为只是想实现算法和数据结构, 就不太想用VisualStudio, 感觉VSCode不错, 遂在网上找了一些教程, 结合自己的需求, ...

  6. Cmake 安装路径和install 命令解析

    1 .安装路径前缀指定: 1.1:命令行cmake时指定 cmake  -DCMAKE_INSTALL_PREFIX = /usr/local/ 1.2: set 命令指定 set(CMAKE_INS ...

  7. cmake install路径

    使用cmake install关键字的时候,常常在误以为的目标目录找不到安装的文件,故整理如下 make install install(TARGETS xxx DESTINATION ${CMAKE ...

  8. CMake常见指令总结

    PROJECT(工程名字) 这条指令会自动创建两个变量: <projectname>_BINARY_DIR(二进制文件保存路径)    <projectname>_SOURCE ...

  9. CMake常用变量和指令

    通过一个或多个CMakeLists.txt文件来控制CMake项目,CMakeLists.txt中包含一系列命令来描述需要执行的构建. 1. CMake语法 CMakeLists.txt中的指令格式是 ...

最新文章

  1. 01-Java基础语法
  2. [转]Java加密算法
  3. Servlet其实是单例多线程
  4. Android:ListView
  5. BootStrap笔记-表格方面的配置
  6. GC:垃圾回收机制及算法
  7. python turtle库下载_python3中安装turtle库
  8. 《推荐系统》基于标签的用户推荐系统
  9. 二进制与十进制的转换
  10. java工具类书写规范
  11. qt触摸屏隐藏鼠标指针
  12. QQ号1941663132是一个诈骗
  13. [导入]冰刃Icesword 1.22测试版发布
  14. python模拟勒索病毒
  15. linux下hg无法运行_Linux 无法启动常见的几种原因及解决办法
  16. 在xcode上看不到输出: stepping may behave oddly; variables may not be available
  17. 趣味计算:加油站加油
  18. openssl-genras命令简单入门
  19. Python3 使用PIL/Pillow库将图片转换为txt文字云
  20. webpack打包 --- 打包工具

热门文章

  1. mysql数据库试题下载_MYSQL数据库2013-2014学年考试试卷
  2. 2020年全球数据中心基础设施收入1650亿美元
  3. 服务器机房有哪些重要系统
  4. 重新考虑数据中心的冷却方案—水冷却或将再次兴起
  5. 用python做毕业设计小程序_用Python写一个模拟qq聊天小程序的代码实例
  6. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
  7. 成功解决RuntimeError: Decompression ‘SNAPPY‘ not available.  Options: [‘GZIP‘, ‘UNCOMPRESSED‘]
  8. Py之pyecharts:python包之数据可视化包pyecharts简介、安装、使用方法之详细攻略
  9. Love:程序猿的方式~【情人节520—我爱你】~动画加音效 → 那些年最浪漫的表白(帮你得到你的她)
  10. element中upload单图片转base64后添加进数组,请求接口