如何强制 cmake 在编译期间包含“-pthread”选项?

2023-12-14

我知道有类似的东西find_package(Threads)但它似乎没有什么区别(至少其本身)。现在我正在使用SET(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} "-pthread"),但对我来说这看起来不是一个正确的解决方案。


CMake 最新版本(>= 3.1)中的 Threads 模块生成Threads::Threads 导入目标。将目标链接到 Threads::Threads 会添加所有必要的编译和链接标志。可以这样做:

set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
set(THREADS_PREFER_PTHREAD_FLAG TRUE)
find_package(Threads REQUIRED)

add_executable(test test.cpp)
target_link_libraries(test Threads::Threads)

根据 ,强烈建议新代码使用导入的目标CMake 文档

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

如何强制 cmake 在编译期间包含“-pthread”选项? 的相关文章

  • CMAKE - 运行时库隐藏文件

    我正在运行 Linux Redhat 我安装了 Anaconda 并且我正在尝试使用安装程序 libspimage CMAKEamd 我收到以下警告 错误 src CMakeLists txt 74 ADD LIBRARY 处的 CMake
  • Clion如何将文件添加到项目中

    这看起来真的很基本 如何将文件添加到项目中而无需手动编辑CMakeLists txt 例如另一个目录中的源文件 CLion 解析CMakeLists txt并使用它生成项目视图 但我相信将文件添加到项目的唯一方法是编辑CMakeLists
  • CMake、Exe找不到DLL

    所以我尝试在 Windows 上使用 cmake 设置一个项目 这就是我的项目结构 游戏引擎 git build include source testing CMakeLists txt 这个想法是 source 目录包含 GameEng
  • C 未定义的行为。严格的别名规则,还是不正确的对齐? [复制]

    这个问题在这里已经有答案了 我无法解释该程序的执行行为 include
  • 如何在 CMake 中运行基本的“add_custom_command”

    我只是想启动并运行一个基本的 CMake 示例 它可以运行一些基本的命令行命令 我已经研究这个有一段时间了 但没有任何运气 我完全用错了吗 任何和所有的意见将不胜感激 cmake minimum required VERSION 3 0 a
  • 如何使用cmake自动构建第三方库

    我在寻找什么 下载库 提取它 应用自定义补丁 运行配置 运行构建命令 我正在尝试构建的库是 Openssl Boost Thrift C ares Curl Pcre Nginx ICU JsonCPP 我想我可以使用外部模块做这些事情 h
  • 如何在 Xcode 构建完成时设置警报?

    我是一名懒惰的 iOS 开发人员 在一个大型 iOS 项目中工作 我已经应用了许多优化来减少项目构建时间 但每次构建都需要超过 10 12 分钟 我开始构建 有时当构建完成时 我会在桌子上睡着 有没有什么方法可以将任何语音 铃声警报与 xc
  • 在 Objective-C 中使用 GCC C 扩展(语句表达式)进行初始化 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 GNU C 提供了标准 C 中没有的多种语言功能 这些扩展在 C 和 Objective C 中都可用 有一个 GCC C 扩展 称为语句表达式
  • 与 SSE 比较 16 字节字符串

    我有 16 字节的 字符串 它们可能更短 但您可能会假设它们在末尾用零填充 但您可能不会假设它们是 16 字节对齐的 至少不总是 如何编写一个例程将它们与 SSE 内在函数进行比较 是否相等 我发现这个代码片段可能会有帮助 但我不确定它是否
  • create-react-app 之后 React npm start 不起作用

    我正在学习 React 而且我的英语很差 我已经有两个反应项目 但它们也不起作用 我按照以下步骤操作 npx 创建反应应用程序我的应用程序 cd 我的应用程序 npm 启动 但它不起作用 我尝试清理缓存并再次安装 npm 但没有成功 我该如
  • CMake source_group() 无法在分层项目设置中正常工作

    在进行更改以使 CMake 项目具有分层文件夹管理后 source group 似乎不再正常工作 CMake 只是将所有内容转储到默认过滤器中 我尝试了各种正则表达式来从父级获取每个源文件的相对文件路径 甚至对父级 CMakeLists t
  • GCC 从 C++ 程序生成的汇编代码中的 .cfi 和 .LFE 是什么?

    我有以下 C 代码 int factorial int n if n 0 return 1 return n factorial n 1 int main void factorial 5 return 0 当我使用 g S Factori
  • 无法使用新的 TfvcTemplate.12.xaml 进行构建

    我尝试将新模板 TfvcTemplate 12 xaml 与我的构建 Vs 2013 一起使用 但每次我收到以下错误消息 TF215097 An error occurred while initializing a build for b
  • 为什么 GCC 不会在文件末尾生成任何有关换行符的警告?

    From C11 5 1 1 2 翻译阶段 第 2 段 非空的源文件应以换行符结尾 字符 其前面不得紧接反斜杠 发生任何此类拼接之前的字符 这意味着每个源文件都必须以换行符结尾 Example include
  • CMake:Fortran 模块和编译顺序

    我有一个大型 Fortran 程序 其中包含许多目录 每个目录都在伪库中单独编译 但仍然存在相互依赖的混乱 因此最终所有伪库都组合在一个可用的库中 我想使用 Fortran 模块 但它非常脆弱 因为我不能依赖自动依赖项检查 并且根据顺序编译
  • 是什么使 ELF 库中的符号成为对象或普通符号?

    我有一个正在加载一些插件的应用程序dlopen 具体来说dlopen name RTLD LAZY RTLD DEEPBIND 有一些插件 以二进制形式提供 可以正常加载 但我尝试构建的插件无法加载并出现错误 opt app plugins
  • “强制更新快照/版本” - 这是什么意思

    在 Maven 项目中 选择 更新项目 时 有一个名为 强制更新快照 版本 的选项 它有什么作用 强制更新快照 版本 就像运行以下命令 mvn U install U 也可以用作 update snapshot 看here http boo
  • gcc 没有小字符串优化吗?

    Most std string实现 包括 GCC 使用小字符串优化 例如 有一个answer https stackoverflow com a 21710033 2640636讨论这个 今天 我决定检查我编译的代码中的字符串在什么时候被移
  • C 十六进制常数类型

    我写了以下c代码 include
  • 找不到包“gdk-pixbuf-2.0”

    我正在尝试在 Amazon Linux 发行版实例上构建 librsvg 我已经通过 yum 安装了大部分依赖项 其中一些在实例上启用的默认 yum 存储库中不可用 因此必须从头开始构建它们 我已经走了很远 但还停留在最后一点 跑步时sud

随机推荐