如何在cmake中添加库路径?

2023-11-21

我的项目中有 2 个文件夹“inc”和“lib”,分别具有标头和静态库。我如何告诉 cmake 分别使用这两个目录进行包含和链接?


最简单的方法是添加

include_directories(${CMAKE_SOURCE_DIR}/inc)
link_directories(${CMAKE_SOURCE_DIR}/lib)

add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # libbar.so is found in ${CMAKE_SOURCE_DIR}/lib

现代 CMake 版本不添加-I and -L每个编译器调用的标志是使用导入的库:

add_library(bar SHARED IMPORTED) # or STATIC instead of SHARED
set_target_properties(bar PROPERTIES
  IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/lib/libbar.so"
  INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/include/libbar"
)

set(FOO_SRCS "foo.cpp")
add_executable(foo ${FOO_SRCS})
target_link_libraries(foo bar) # also adds the required include path

如果设置INTERFACE_INCLUDE_DIRECTORIES不添加路径,旧版本的 CMake 也允许您使用target_include_directories(bar PUBLIC /path/to/include)。然而,这不再有效使用 CMake 3.6 或更高版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在cmake中添加库路径? 的相关文章

随机推荐

  • getDrawingCache() 返回 null

    我正在开发一个简单的绘画应用程序 并尝试实现在用户请求时提供更多绘制空间的功能 我认为这可以通过简单地启用我的 CustomView 类的滚动来完成 该类包含在 LinearLayout 中 然后包含在滚动视图类 如果我没有通过运行 Chu
  • Musicbrainz 指纹识别

    我一直忙于了解音乐大脑在过去的几个小时中 我注意到没有命令行应用程序来标记或指纹音频文件 Musicbrainz 的指纹识别有任何 CLI 实现吗 我怎样才能创建这些指纹 我找到了一些开发工具在他们的网站上 python musicbrai
  • Android 测试 BuildConfig 字段

    假设我的build gradle文件为中定义的同一变量定义了不同的值BuildConfig android def INTEGER integer def VARIABLE variable buildTypes release build
  • 如何在databricks中使用通配符列出文件

    我想列出 adls 文件夹中的所有镶木地板文件 dbutils fs ls abfss path to raw files parquet 有没有办法让上面的语句发挥作用 您可以使用 Magic Commands 来使用 shell 命令来
  • AWS CodePipeline 不将构件上传到 AWS S3

    As an effort to automate the Android build and test process I configured an AWS code pipeline that will 1st get the code
  • Python 遍历字符

    我一直在尝试通过中值字符串搜索 ACGT 基因组中的序列 我遇到的问题是从 AAAAAAAA 到 AAAAAAAC 等等 直到我尝试了所有可能的组合 我本质上是通过创建两个列表来进行暴力破解 一个包含 A C G T 另一个包含 8 个字符
  • 如何使用Python从txt文件中删除特殊字符

    from glob import glob pattern D report shakeall txt filelist glob pattern def countwords fp with open fp as fh return le
  • Android 12 设备所有者配置

    我有一个应用程序 可以通过下面的 JSON 中的 QR 码在 Android 12 及以上的设备上成功设置为设备所有者 android app extra PROVISIONING DEVICE ADMIN COMPONENT NAME p
  • JSON-RPC Swagger 组合

    我正在考虑为我的 Web 服务实现 JSON RPC这个图书馆 我也想实施Swagger为我服务 但是 我不确定这两者是否是一个很好的组合 在 JSON RPC 中 所有方法都位于同一资源后面 而这在 Swagger 中没有任何意义 我想知
  • 使用 Jackson 模块和 ScalaObjectMapper 在 Spark 1.4.0 上运行作业时出错

    我正在运行一个用 Scala 2 10 4 编写的 Spark 作业 并在 Spark 1 4 0 集群上运行 基于 HDFS 并使用 YARN 进行管理 并在 Maven 存储库上使用 Jackson 模块版本 2 6 1 当从我的 ID
  • 运行 Python 3.5 解释器需要哪些标准库模块?

    这是一个 CPython 程序 它尝试用空的初始化解释器sys path include
  • 确定 UIImage 的主要颜色和次要颜色

    我想知道是否有人可以帮助我弄清楚如何确定 UIImage 中的主要原色和次要颜色 我在谷歌中找不到任何非常有用的东西 基于上面的 Panic 博客 这里有一个快速方法 接受 UIImage 输入和输出 背景色 原色 次要颜色 将 UIIma
  • 将数据框行转换为列名称

    有没有快速的方法 部分tidyverse也许是 API 将行转换为列名data frame or tibble 有点类似于tibble column to rownames 我意识到有很多方法可以做到这一点 例如有点笨拙 gt df lt
  • 如何获取Assets文件夹中文件的android路径字符串?

    我需要知道字符串路径到资产文件夹中的文件 因为我使用的地图 API 需要接收字符串路径 并且我的地图必须存储在资产文件夹中 这是我正在尝试的代码 MapView mapView new MapView this mapView setCli
  • Jquery 选择器的逻辑 AND

    我想设置为检查按值和名称输入的复选框
  • 如何重用matplotlib.Axes.hist的返回值?

    假设我想绘制两次相同数据的直方图 import matplotlib pyplot as plt fig plt figure figsize 8 6 ax1 ax2 fig subplots nrows 2 ncols 1 ax1 his
  • Flutter:如何将拇指图像添加到滑块?

    我尝试将图像添加到滑块拇指 但我不知道它应该如何工作 在SliderThemeData我们没有用于添加缩略图的参数 我已经绑定使用SliderComponentShape用于绘制拇指 但它不起作用 class TimeReportTextF
  • Django - makemigrations - 未检测到任何更改

    我试图使用 makemigrations 命令在现有应用程序中创建迁移 但它输出 未检测到更改 通常我使用以下方式创建新应用程序startapp命令 但在我创建该应用程序时并未将其用于此应用程序 经过调试 我发现它没有创建迁移 因为migr
  • 名称为“mainController”的控制器未注册

    我的 script js 文件中有这段代码 var mainController function scope scope message Plunker 这是我的 HTML
  • 如何在cmake中添加库路径?

    我的项目中有 2 个文件夹 inc 和 lib 分别具有标头和静态库 我如何告诉 cmake 分别使用这两个目录进行包含和链接 最简单的方法是添加 include directories CMAKE SOURCE DIR inc link