如何让 OpenMP 在 MSVC 2015 上运行 clang

2023-12-06

我尝试让 clang 5.0.0 适用于 Visual Studio 2015,因为我需要 OpenMP 3.0 功能。我安装了clang编译器(不是没有任何openmp支持的vs2015版本)并使用cmake:

cmake_minimum_required(VERSION 2.8.10)
project(myproject)

find_package(OpenMP)
if (OPENMP_FOUND)
    set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif()

include_directories("include")
add_library(libFoo STATIC Foo.cpp)

install(TARGETS Foo libFoo LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)

当我现在尝试配置MSVC 14 2015 Win64使用或不使用工具链构建LLVM-vs2014我总是收到错误,未找到 OpenMP:

The C compiler identification is Clang 5.0.0
The CXX compiler identification is Clang 5.0.0
Check for working C compiler: D:/Program Files/LLVM/msbuild-bin/cl.exe
Check for working C compiler: D:/Program Files/LLVM/msbuild-bin/cl.exe -- works
Detecting C compiler ABI info
Detecting C compiler ABI info - done
Detecting C compile features
Detecting C compile features - done
Check for working CXX compiler: D:/Program Files/LLVM/msbuild-bin/cl.exe
Check for working CXX compiler: D:/Program Files/LLVM/msbuild-bin/cl.exe -- works
Detecting CXX compiler ABI info
Detecting CXX compiler ABI info - done
Detecting CXX compile features
Detecting CXX compile features - done
Could NOT find OpenMP_C (missing: OpenMP_C_FLAGS OpenMP_C_LIB_NAMES) (found version "1.0")
Could NOT find OpenMP_CXX (missing: OpenMP_CXX_FLAGS OpenMP_CXX_LIB_NAMES) (found version "1.0")
Configuring done

使用的编译器似乎是正确的(安装了 clang,而不是 Microsoft 版本),它自动检测 clang-cl 二进制文件,但 OpenMP 失败。 我尝试使用“指定本机编译器”手动指定编译器并得到相同的结果。它甚至选择 clang-cl 版本而不是 clang++。

相关答案,但不能解决问题:

  • 使用 clang-cl 使用 openmp 编译 C 代码- 最近的 clang 包含了 libomp.lib 和 libiomp5.dll

这确实有点棘手,而且 cmake 自动检测似乎工作得不太好。有帮助的是

OpenMP_CXX_FLAGS="-Xclang -fopenmp"
OpenMP_C_FLAGS="-Xclang -fopenmp"

并确保libomp.lib位于链接库中。

-Xclang告诉 clang 二进制文件,以下选项采用 clang 格式而不是 MSVC 格式,并且 -fopenmp 只是通常的 OpenMP 标志。但是,以任何其他方式设置它都不起作用。

一般模式是:-Xclang -clangFlag1 -Xclang -clangFlag2...。即每个 Clang 风格标志都需要自己的-Xclang.

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

如何让 OpenMP 在 MSVC 2015 上运行 clang 的相关文章

  • 在 Vulkan 中,图形队列系列与当前队列系列分离是否有益?

    据我所知 队列系列可能支持呈现到屏幕但不支持图形 假设我有一个同时支持图形和呈现的队列系列 以及另一个仅支持呈现的队列系列 我应该为两个进程使用第一个队列系列 还是应该将第一个队列系列委托给图形 将后者委托给呈现 或者这两种方法之间没有明显
  • C# SmtpClient编程中如何设置带有中文的附件文件名?

    我的代码如下 ContentType ct new ContentType ct MediaType MediaTypeNames Application Octet ct Name 这是一个很长的中文文件名希望能用它在附件名中 Doc A
  • strlen() 编译时优化

    前几天我发现你可以找到编译时strlen使用这样的东西 template
  • 在 C++ 代码中转换字符串

    我正在学习 C 并开发一个项目来练习 但现在我想在代码中转换一个变量 字符串 就像这样 用户有一个包含 C 代码的文件 但我希望我的程序读取该文件并插入将其写入代码中 如下所示 include
  • 如何在 C# 中将 Json 转换为对象

    我想将 Json 转换为 C 中的对象 这里的 Json 是 值 e920ce0f e3f5 4c6f 8e3d d2fbc51990e4 如何使用 Object 问题看似愚蠢 但其实并不那么愚蠢 我没有简单的 Json 我有 IEnume
  • 2个对象,完全相同(除了命名空间)c#

    我正在使用第三方的一组网络服务 但遇到了一个小障碍 在我手动创建将每个属性从源复制到目标的方法之前 我想我应该在这里寻求更好的解决方案 我有 2 个对象 一个是 Customer CustomerParty 类型 另一个是 Appointm
  • 如何修复错误:“检测到无法访问的代码”

    我有以下代码 private string GetAnswer private int CountLeapYears DateTime startDate return count String answer GetAnswer Respo
  • 防止控制台应用程序中的内存工作集最小化?

    我想防止控制台应用程序中的内存工作集最小化 在Windows应用程序中 我可以这样做覆盖 SC MINIMIZE 消息 http support microsoft com kb 293215 en us fr 1 但是 如何在控制台应用程
  • 如何向 Mono.ZeroConf 注册服务?

    我正在尝试测试 ZeroConf 示例http www mono project com Mono Zeroconf http www mono project com Mono Zeroconf 我正在运行 OpenSuse 11 和 M
  • MVC 5 中具有 ASP.NET Identity 的 Autofac 不会验证 OWIN 管道中的安全标记

    我在 MVC 5 中设置了 AutoFac 来与 ASP NET Identity 一起使用 表面上一切似乎都工作正常 即用户可以创建帐户并登录 但后来我发现 当安全标记更改时 用户不会注销 通过在 AspNetUsers 表中进行暴力破解
  • 来自嵌入图像的 BitmapSource

    我的目标是在 WPF 窗口上重写 OnRender 方法中绘制图像 someImage png 它是嵌入资源 protected override void OnRender System Windows Media DrawingCont
  • LinkLabel 无下划线 - Compact Framework

    我正在使用 Microsoft Compact Framework 开发 Windows CE 应用程序 我必须使用 LinkLabel 它必须是白色且没有下划线 因此 在设计器中 我将字体颜色修改为白色 并在字体对话框中取消选中 下划线
  • 对于 C# Express 用户来说,有哪些好的工具可以识别可能重复的代码? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 也可以看看 有什么工具可以检查重复的 VB NET 代码吗 https stackoverflow c
  • 当Model和ViewModel一模一样的时候怎么办?

    我想知道什么是最佳实践 我被告知要始终创建 ViewModel 并且永远不要使用核心模型类将数据传递到视图 这就说得通了 让我把事情分开 但什么是Model 和ViewModel一模一样 我应该重新创建另一个类还是只是使用它 我觉得我应该重
  • 以编程方式创建 Blob 存储容器

    我有一个要求 即在创建公司时 在我的 storageaccount 中创建关联的 blob 存储容器 并将容器名称设置为传入的字符串变量 我已尝试以下操作 public void AddCompanyStorage string subDo
  • Xamarin Forms Binding - 访问父属性

    我无法访问页面的 ViewModel 属性以便将其绑定到 IsVisible 属性 如果我不设置 BindingContext 我只能绑定它 有没有办法可以在设置 BindingContext 的同时访问页面的 viewmodel root
  • 在哪里可以找到 Microsoft.Build.Utilities.v3.5

    如何获取 Microsoft Build Utilities v3 5 我正在使用 StyleCop 4 7 Stylecop dll 中的 StyleCop msbuild 任务似乎依赖于 Microsoft Build Utilitie
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • Streamwriter 覆盖 txt 文件中的文本

    有没有什么方法可以重新打开流写入器而不创建新的写入对象 因为此时 当调用 WriteOdd 时 streamwriter 正在覆盖在它之前调用的 WriteEven public void WriteEven StreamWriter wr
  • 如何为有时异步的操作创建和实现接口

    假设我有数百个类 它们使用 计算 方法实现公共接口 一些类将执行异步 例如读取文件 而实现相同接口的其他类将执行同步代码 例如将两个数字相加 为了维护和性能 对此进行编码的好方法是什么 到目前为止我读到的帖子总是建议将异步 等待方法冒泡给调

随机推荐

  • Google Apps 脚本批量执行时间意外

    以下代码会导致空白表 可能是由于 clear 最后执行 即使它列在最前面 const ss SpreadsheetApp getActiveSpreadsheet var contractSheet ss getSheetByName sh
  • IISExpress 从远程计算机返回 503 错误

    我正在尝试使用本地网络上的其他一些计算机 设备来测试在本地 IISExpress 实例中运行的网站 我运行的是Win7专业版 当我第一次尝试从本地网段上的另一台计算机浏览到我的计算机时 收到 400 错误 主机名无效 据我了解 我需要使用提
  • 在页面上显示 Woocommerce 通知

    我创建了一个功能来显示一些带有短代码的产品 但我遇到的问题是错误消息没有显示在该页面上 例如 如果某些字段是必需的 那么它仅显示在购物车 结账页面上 这是我的一些代码 while query gt have posts query gt t
  • 使用 ThreeCSG 在 Three.js 中绘制 OBJ 的横截面

    我正在尝试制作横截面OBJ装载有Three js OBJ 加载器使用threeCSGJavaScript 的包装器构造立体几何图书馆 当我使用常规网格 如球体 立方体 时 相交 csg 操作效果很好 我还可以使用处于初始位置的 obj 制作
  • 根据 2D 索引替换 2D numpy 数组元素[重复]

    这个问题在这里已经有答案了 这个问题可能以前在某个地方被问过 但经过一番搜索后我找不到任何问题 因此在此发布 假设我有一个数组A和一个索引数组idx 暂时让两个数组都是二维的 import numpy as np A np array 3
  • JComponent大小问题

    我有一个JComponent我用来在屏幕上绘制形状的子类 在构造函数中 我试图设置ballX and ballY到一半X and Y的大小值JComponent 我认为我做错了 我现在查了很多资料 还是找不到解决办法 代码如下 请记住 这是
  • AngularJS - 从视图到控制器的 json 数据

    我从 xsl 翻译器获取 html 模板 json 数据 它是动态的 看起来像 html 代码加上字符串化 json 中的一些数据 问题是 我以什么方式将 json 字符串放入 html 代码中 以便控制器在 html 渲染之前捕获此 js
  • MVVM下WPF DataGridTemplateColumn可见性绑定

    我的 ViewModel 中有一个绑定到 ICollectionView 的 DataGrid DataGrid 位于 UserControl 内 该 UserControl 用于几种不同的数据场景 其中一些需要某些 DataGrid 列
  • 将背景图像居中对齐

    这是 HTML div class gallerybox a href CustomContentRetrieve aspx ID 398791 img alt src Utilities image jpg width 400 heigh
  • Delphi:使用参数时如何获取传递到服务器的查询

    我有一个带有 Devart TMSQuery SQL 内参数的查询 就像是 select from customers where customer CustomerID 在我做的代码中 Delphi sqlcustomer ParamBy
  • MongoDB 中的 geoNear 可以返回文档中字段的子集吗?

    当使用 geoNear 时 它返回所有字段 整个文档 它找到的对象 有什么方法可以将其限制为字段的子集吗 目前不支持这一点 唯一的解决方法是使用 near 并自己进行距离计算 dist sqrt dx dx dy dy
  • 如何查找 SQL Server 中所有数据库中所有表的列名

    我想找到所有表中的所有列名在所有数据库中 有没有一个查询可以为我做到这一点 尝试这个 select o name c name from sys columns c inner join sys objects o on c object
  • Microsoft Graph - 允许用户访问应用程序/服务主体

    我们正在向员工推出一个主要应用程序 它已设置为使用 Azure AD SSO 目前我们必须通过 Azure AD gt 应用程序 gt 用户手动设置每个用户才能访问该应用程序 我们有一个小型 C Web 应用程序 用于管理 AD 用户希望使
  • 使用 PushState 为 Backbone SPA 配置 Node Express

    我的 Express 应用程序有一个休息服务器和一个使用 Backbone 的 SPA 使用 history一切正常 即 Backbone history start If I do Backbone history start pushS
  • 使用 C# 写入 Excel

    我有一个基本的 WinForms 应用程序 并且希望能够将该应用程序中的数据写入 Excel 电子表格 到目前为止我有以下代码 Microsoft Office Interop Excel Application excelapp new
  • 自定义上传按钮

    嗨 我只是想知道如何创建自己的自定义文件上传按钮 因为我能做的最好的就是 我想要实现的是 如果有的话我会非常感激 请我提供解释如何使用代码执行此操作的答案 而不是包含允许您下载按钮或类似内容的网站链接的答案 谢谢 尽管其中一些答案会创建一些
  • 历史数据的非抽样报告自动化

    我们有一个客户每天收到 2 400 万次访问 因此我们只能获得未抽样的报告 因为它超出了谷歌的限制 对于尚未存储数据的特殊查询 最多 500 000 个会话 我们正在尝试收集 1 天期间的独立访客和访问次数 事实证明 当数据被采样时 使用
  • 给定 k 个已排序数组,从每个数组中选择一个元素,使得所选元素的最大元素和最小元素之差最小

    给定 k 个已排序数组 从每个数组中选择一个元素 使得所选元素的最大元素和最小元素之差最小 k 3 的示例 数组1 1 13 27 30 数组2 16 20 29 数组3 2 3 14 18 19 22 25 28 答 2 选定的元素 27
  • 将指针/引用作为参数传递给变量

    我知道这个问题已经被问过多次 是的 我做了一些研究 但我找不到适合我需求的解决方案 到目前为止我所做的 我正在构建一个函数 用于跟踪用户向下滚动页面的百分比并将其很好地显示在某个进度条中 这工作得很好 但是当我在 Chrome 上打开开发者
  • 如何让 OpenMP 在 MSVC 2015 上运行 clang

    我尝试让 clang 5 0 0 适用于 Visual Studio 2015 因为我需要 OpenMP 3 0 功能 我安装了clang编译器 不是没有任何openmp支持的vs2015版本 并使用cmake cmake minimum