cmake find_path/find_library 检查失败

2024-03-22

我在用着CMake 2.8.2 http://www.cmake.org/Wiki/CMake_2.8.2_Docs版本。该项目使用大量外部文件和自定义库(无法通过 find_package 获得),并且有一长串元素,如下所示:

find_path(XXX_INCLUDE_DIR XXX.h /XXX/include)
if (XXX_INCLUDE_DIR)
  message(STATUS "Includes (XXX) found in ${XXX_INCLUDE_DIR}")
else()
  message(FATAL_ERROR "Includes (XXX) not found")
endif()

剧本里这样的东西有20多处——看起来不太好。根据文档,不幸的是,find_path 和 find_library 都没有 REQUIRED 选项来完成这里的工作(就像 find_package 一样 - 如果找不到,脚本将停止)。您知道如何缩短 CMake 脚本代码吗?就像是

find_path(XXX_INCLUDE_DIR XXX.h /XXX/include REQUIED)

或者类似的东西会很棒。


将它们放入您的自定义 FindXXX.cmake 模块中。阅读docs http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/readme.txt看看FindPNG.cmake http://cmake.org/gitweb?p=cmake.git;a=blob;f=Modules/FindPNG.cmake举个例子。将它们放入<project>/cmake/FindXXX.cmake(或类似),然后将包含这些文件的目录添加到CMAKE_MODULE_PATH并使用find_package(), e.g.

list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")

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

cmake find_path/find_library 检查失败 的相关文章

  • Google App 脚本在电子表格中查找文本并返回位置索引

    我是谷歌应用程序脚本的新手 我的 JavaScript 也不是很强 但这似乎都不是问题 因为我的代码在第一次运行时可以工作 但当我尝试再次调用它时 它会失败 简而言之 我试图拥有一个可以动态查找给定范围内给定文本的函数 虽然看起来可能有一个
  • 通过命令提示符将参数传递给 CMAKE

    我的项目有一个 makefile 我可以用它传递一个控制某些构建标志的参数 现在我想使用 CMake 做同样的事情 我创造了CMakeLists txt但我不知道如何传递参数并检查参数值CMakeLists txt 我的 Makefile
  • CMake add_custom_target 取决于正在构建的整个项目

    我想添加一个依赖于成功构建的整个项目的测试目标 而无需重新指定对所有库或可执行文件的依赖关系 我会在 make 中将其写为 all foo bar foo bar test all test sh test sh 隐式使用 foo 和 ba
  • Ctypes 在使用 CMake 创建的共享库中找不到符号

    我在 linux 中创建共享库的 CMake 设置类似于 SET CMAKE CXX FLAGS fPIC SET LIB UTILS SRC Utils cpp ADD LIBRARY UTILS SHARED LIB UTILS SRC
  • std::find 的优点

    使用 C 11 有什么优势吗std find超过一个容器的find method 如果是std vector 其中没有find方法 确实std find使用一些智能算法或简单地迭代每个元素的天真的方法 如果是std map看来你需要传递一个
  • 检测“位图中”的形状

    所以 在为下一场 ieextreme 比赛做准备时 我遇到了一些过去的问题 我发现一个真正困扰我的问题 因为我不知道该怎么做 我可能可以使用一些 300 行的暴力代码来实现它 但我我认为这不是在这样的比赛中应该做的事情 所以我需要你的帮助
  • find_package 用于使用 Visual Studio 进行调试和发布

    我正在为如何将第三方库包含在我的 cmake 项目中而绞尽脑汁 目前 我构建了 Poco 和其他一堆 它们都生成各自的 Config cmake 我将其与 find package 一起使用 我有一个包装构建脚本 用于构建所有依赖项并将它们
  • CMake:如何禁用单个 *.cpp 文件的优化?

    我想禁用 CMake 项目中单个 cpp 文件的优化 我发现 CMake 提供了以下功能来实现此目的 SET SOURCE FILES PROPERTIES FILE PROPERTIES COMPILE FLAGS O0 然而 这似乎对我
  • 使用 CMake 在主项目之前强制构建外部项目(使用 buildtools)

    我想在开始构建我的主项目之前构建 gsl 我将以下行添加到 rootCMakeLists txt file cmake minimum required VERSION 2 8 project moose include CheckIncl
  • CMake:如何标准化路径? [复制]

    这个问题在这里已经有答案了 是否有一种可靠的方法来标准化 CMake 中的路径 例子 Let s assume that an environment variable MY ROOT DIR is set that points to s
  • cmake 在 OS X 上找不到 gl.h

    我在 OS X 10 10 上并尝试使用 GLUT 和 OpenGL 构建一个 C 项目 我将其简化为展示我的问题的最小示例 我有以下内容CMakeLists txt cmake minimum required VERSION 2 8 F
  • 如何使用c++在运行时动态注册工厂类中的类

    现在 我实现了一个工厂类来动态创建带有标识字符串的类 请参见以下代码 void IOFactory registerIO Register NDAM9020 gt IOBase return new NDAM9020 Register BK
  • 如何为 HDFS 递归列出子目录?

    我在 HDFS 中递归创建了一组目录 如何列出所有目录 对于普通的 UNIX 文件系统 我可以使用以下命令来做到这一点 find path type d print 但我想为 HDFS 得到类似的东西 递归列出目录内容hadoop dfs
  • cmake 发现错误的 python 库

    我是 CMake 新手 无法理解一些使用概念 我正在从 C 程序调用 python 脚本 include
  • Windows 中 CMake 的默认生成器是什么?

    在一台 PC 上运行 CMake 时 CMake 默认生成 NMake 文件 另一方面 它生成一个 Visual Studio 项目 我知道我可以通过添加来覆盖默认值 G NMake Makefiles 到我的 CMake 语句的末尾 但我
  • CMake 错误:无法创建命名生成器 Visual Studio 15 2017 Win64-T

    我想建立这个项目 https github com xmrig xmrig https github com xmrig xmrig根据此处的说明 https github com xmrig xmrig wiki Windows Buil
  • CMake错误:本项目中使用了以下变量,但它们被设置为NOTFOUND

    我正在尝试配置whalebot带有 tar 文件的爬虫whalebot 0 02 00 tar gz 我已正确提取它 root Admin1 dls tar xvzf whalebot 0 02 00 tar gz 之后我想对其进行配置 r
  • Linux命令:如何仅“查找”文本文件?

    经过几次谷歌搜索后 我得出的结论是 find my folder type f exec grep l needle text exec file grep text 这非常不方便 并且会输出不需要的文本 例如 mime 类型信息 还有更好
  • M1 MacBook Pro 和 cmake 的编译错误

    我刚刚拿到了新的 M1 MacBook Pro 正在尝试编译大学工作所需的代码库 以下是我已采取的步骤 我使用 Rosetta 将终端设置为始终打开 安装的自制程序using bin bash c curl fsSL https raw g
  • Perl 初学者:如何查找/替换文件中的 ASCII 字符?

    我对 Perl 完全陌生 我认为这将是解决我的简单任务的最佳语言 我需要将二进制文件转换为可读的文件 并且需要查找和替换字符串 例如 x00 x39 into x09 选项卡 或类似的东西 从 bash 开始 我从以下内容开始 效果很好 p

随机推荐

  • 如何在 C++ 中验证字符串是否为有效的 IPv4 地址?

    我不需要验证 IP 地址是否可达或类似的内容 我只想验证该字符串是否采用点分四组 xxx xxx xxx xxx IPv4 格式 其中 xxx 介于 0 到 255 之间 您可能想要内特 pton http man7 org linux m
  • 我可以在 AWS Lambda 函数上存储临时文件吗?

    我正在编写一个用于文件提取的 lambda 函数 并且需要在执行此函数时存储文件 因此需要将该文件存储在 aws lambda function 中 是否可以在 lambda 上存储文件 是的 引用自 AWS Lambda 常见问题解答 每
  • Visual Studio 2010 Express。写入输出窗口

    我是 Visual Studio 和 Windows Phone 7 开发新手 我确实激活了重定向所有输出文本选项 但 Debug Writeline 或 Console WriteLine 都不起作用 我如何记录信息 我也花了一段时间才找
  • 分布式任务队列(例如 Celery)与 crontab 脚本

    我无法理解 分布式任务队列 的用途 例如 python 的芹菜库 http www celeryproject org 我知道在 python 框架 celery 中 您可以设置定时窗口来执行函数 然而 这也可以在针对 python 脚本的
  • PostgreSQL 无法打开文件“base/xxxx/xxxxx”没有这样的文件或目录

    最近 我的 Linux 机器上出现了硬件故障 在修复硬件问题并恢复我的 Linux 机器后 当我对其中一个表执行查询时 返回以下错误 ERROR could not open file base 17085 281016 No such f
  • 创建动态分组依据

    df data frame A c 1 4 5 13 2 B c Group 1 Group 3 Group 2 Group 1 Group 2 C c Group 3 Group 2 Group 1 Group 2 Group 3 df
  • GUI 作为有限状态机

    为了实现应用程序的 GUI 我希望将所有逻辑从一种形式集中到另一种形式 该 GUI 管理器将充当有限状态机 虽然我想我在某处见过这种实现 但我找不到与这种解决方案相匹配的设计模式 表单将如下所示 public class Login For
  • 因它能做什么或因为它做了而关闭

    好吧 这是一个有点迂腐的问题 但我想确保我正确理解了这个定义 闭包绰号是用来描述匿名函数的can提升局部作用域中的变量 无论它们实际上是否这样做 或仅当它们do在局部范围内提升变量 换句话说 如果匿名函数具有ability在其本地范围内提升
  • 从 .lm.fit() 计算 p 值的快速方法

    我正在运行模拟并拟合线性模型 lm fit https www rdocumentation org packages pbdDMAT versions 0 4 2 topics lm fit 尽管速度极快 但该函数不提供预测变量的 p 值
  • 如何仅使用 GPX 文件进行 UI 测试

    我正在尝试使用 GPX 文件来模拟运行 UI 测试时的位置 我已在 测试位置 下选择了 GPX 文件 但这不起作用 我刚刚收到一个错误 告诉我 位置不可用 我知道 我可以进入 运行 gt 调试 然后激活 允许位置模拟 然后选择该文件作为 默
  • 从 GWT 访问 Web 服务

    有什么方法可以使用 GWT 的 WSDL 访问 Web 服务吗 以前我试图使用 ws import 生成的类 但后来有人向我指出 GWT 无法处理所有 Java 只能处理它的一个子集 因此它无法理解 ws import 类 感谢致敬 Krt
  • 为什么默认情况下不使用 Control.Monad.Instances 实现 (->)

    我正在读书LYAH http learnyouahaskell com functors applicative functors and monoids 它说我需要显式加载Control Monad Instances使以下语法起作用 f
  • 验证关联的唯一性

    给定以下课程 class Candidate has many applications has many companies through gt job offers end class JobOffer belongs to comp
  • c++ 仅读取文本文件最后一行的最快方法?

    我只想读取文本文件的最后一行 我在 UNIX 上 可以使用 Boost 我知道的所有方法都需要扫描整个文件才能获取最后一行 这根本没有效率 有没有一种有效的方法只获取最后一行 另外 我需要它足够强大 即使有问题的文本文件不断被另一个进程附加
  • 使用 c:foreach (JSP/JSTL) 迭代 ArrayList,变量不起作用

    我知道 关于我的问题有无数的例子 但我经历了很多 但无法弄清楚我的错误在哪里 我正在迭代 ArrayList TestSzenario TestSzenario 类包含一个名为 name 的字符串变量 具有适当的 getter 和 sett
  • SQLWITH子句示例[重复]

    这个问题在这里已经有答案了 我试图了解如何使用WITH条款和目的WITH clause 我所明白的是 WITH子句是普通子查询的替代品 谁能用一个小例子详细向我解释这一点 SQL WITH 子句是 Oracle 在 Oracle 9i 第
  • Spring MVC 为什么这个 Hello World 在没有注释驱动标签的情况下运行良好(与任何其他 Spring 项目不同)

    我已经开始学习 Spring MVC 阅读本教程 http viralpatel net blogs spring 3 mvc create hello world application spring 3 mvc http viralpa
  • Java中调整BufferedImage的亮度和对比度

    我正在使用一些框架处理一堆图像 而我得到的只是一堆BufferedImage对象 不幸的是 这些图像真的很暗 我想把它们调亮并稍微调整一下对比度 就像是 BufferedImage image something getImage imag
  • 假设一次有多个 AWS IAM 角色

    有时 我需要访问多个 AWS 资源 我可以使用单独的 IAM 角色单独访问这些资源 如果我需要一起使用这些资源 我目前必须找出一个非本地连接器 如果我可以同时访问这些资源 有时我可以使用 AWS 连接器同时连接这两个资源 例如 https
  • cmake find_path/find_library 检查失败

    我在用着CMake 2 8 2 http www cmake org Wiki CMake 2 8 2 Docs版本 该项目使用大量外部文件和自定义库 无法通过 find package 获得 并且有一长串元素 如下所示 find path