- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在尝试构建一个 OpenMP 带有集成到 Visual Studio 2019 的 LLVM 编译器的示例程序。
LLVM 编译器是从 here 下载的(版本 10.0,win64),C:\Program Files\LLVM\bin 添加到 PATH 环境变量中。 LLVM 编译器工具链 扩展是从 Visual Studio Marketplace 安装的.
它成功构建了一个 hello world 程序,但是当我尝试使用 OpenMP 时,链接器失败并出现以下错误:
1>clang version 10.0.0
1>Target: x86_64-pc-windows-msvc
1>Thread model: posix
1>InstalledDir: C:\Program Files\LLVM\bin
1> (in-process)
1> "C:\\Program Files\\LLVM\\bin\\clang-cl.exe" -cc1 -triple x86_64-pc-windows-msvc19.26.28805 -emit-obj -mrelax-all -mincremental-linker-compatible -disable-free -disable-llvm-verifier -discard-value-names -main-file-name llvmtest.cpp -mrelocation-model pic -pic-level 2 -mthread-model posix -mframe-pointer=none -relaxed-aliasing -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -target-cpu x86-64 -mllvm -x86-asm-syntax=intel -D_DEBUG -D_MT -D_DLL --dependent-lib=msvcrtd --dependent-lib=oldnames -stack-protector 2 -fcxx-exceptions -fexceptions -fexternc-nounwind -fms-volatile -fdefault-calling-conv=cdecl -fdiagnostics-format msvc -gcodeview -debug-info-kind=limited -v -resource-dir "C:\\Program Files\\LLVM\\lib\\clang\\10.0.0" -D _DEBUG -D _CONSOLE -D _UNICODE -D UNICODE -internal-isystem "C:\\Program Files\\LLVM\\lib\\clang\\10.0.0\\include" -internal-isystem "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.26.28801\\include" -internal-isystem "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Tools\\MSVC\\14.26.28801\\atlmfc\\include" -internal-isystem "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\VC\\Auxiliary\\VS\\include" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\ucrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\um" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\shared" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\winrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\10\\Include\\10.0.18362.0\\cppwinrt" -internal-isystem "C:\\Program Files (x86)\\Windows Kits\\NETFXSDK\\4.6.1\\Include\\um" -O0 -Wall -Wno-error -fdeprecated-macro -fdebug-compilation-dir "Z:\\llvmtest" -ferror-limit 19 -fmessage-length 0 -fopenmp -fno-use-cxa-atexit -fms-extensions -fms-compatibility -fms-compatibility-version=19.26.28805 -std=c++14 -fdelayed-template-parsing -fobjc-runtime=gcc -fno-caret-diagnostics -fdiagnostics-show-option -faddrsig -o "Debug\\llvmtest.obj" -x c++ llvmtest.cpp
1>clang -cc1 version 10.0.0 based upon LLVM 10.0.0 default target x86_64-pc-windows-msvc
1>#include "..." search starts here:
1>#include <...> search starts here:
1> C:\Program Files\LLVM\lib\clang\10.0.0\include
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\include
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC\14.26.28801\atlmfc\include
1> C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\VS\include
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\ucrt
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\um
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\winrt
1> C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\cppwinrt
1> C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um
1>End of search list.
1>lld-link : error : undefined symbol: __kmpc_global_thread_num
1>>>> referenced by Z:\llvmtest\llvmtest.cpp:9
1>>>> Debug\llvmtest.obj:(main)
1>
1>lld-link : error : undefined symbol: __kmpc_push_num_threads
1>>>> referenced by Z:\llvmtest\llvmtest.cpp:15
1>>>> Debug\llvmtest.obj:(main)
1>
1>lld-link : error : undefined symbol: __kmpc_fork_call
1>>>> referenced by Z:\llvmtest\llvmtest.cpp:15
1>>>> Debug\llvmtest.obj:(main)
1>
1>lld-link : error : undefined symbol: omp_get_thread_num
1>>>> referenced by Z:\llvmtest\llvmtest.cpp:19
1>>>> Debug\llvmtest.obj:(.omp_outlined._debug__)
1>
1>lld-link : error : undefined symbol: omp_get_num_threads
1>>>> referenced by Z:\llvmtest\llvmtest.cpp:25
1>>>> Debug\llvmtest.obj:(.omp_outlined._debug__)
1>Done building project "llvmtest.vcxproj" -- FAILED.
#include <omp.h>
#include <stdio.h>
int main()
{
int nthreads, tid;
//omp_set_num_threads(4);
#pragma omp parallel private(tid) num_threads(3)
{
tid = omp_get_thread_num();
printf("Hello World from thread = %d\n", tid);
if (tid == 0)
{
nthreads = omp_get_num_threads();
printf("Number of threads = %d\n", nthreads);
}
} /* All threads join master thread and terminate */
}
-fopenmp
,
-Xclang -fopenmp
编译器标志,通过
-openmp
和
-fopenmp
作为链接器标志,将 x64 更改为 x86,将 C:\Program Files\LLVM\lib 添加到 PATH。到目前为止没有任何帮助。
clang-cl -openmp llvmtest.cpp
-openmp
标志就足够了......有没有人知道如何让它在 Visual Studio 中工作?
最佳答案
最后,我设法让它工作了(感谢 LLVM 工具链扩展的作者 Marek Aniola,他帮助了我)。
首先,我通过了/openmp
标志到 LLVM -> 其他编译器选项 (它也适用于 -openmp
)。
其次,事实证明,从 Visual Studio 构建时 OpenMP 不会自动链接(与通过 clang-cl 从命令行编译相反)。 LLVM 的链接器设置的指定方式与 Microsoft 链接器的指定方式相同。
库 C:\Program Files\LLVM\lib 的路径必须添加到 链接器 -> 一般 -> 其他图书馆目录 .
还需要在中列出libomp.lib链接器 -> 输入 -> 附加依赖项 .
链接器 -> 优化 -> 链接时间代码生成 必须设置为 默认 .
这些步骤让我成功地构建了代码(64 位应用程序)。尽管 64 位 LLVM 编译器可以构建 32 位程序,但它仅包含 x64 版本的 OpenMP 库,因此为了构建 32 位应用程序,我必须链接 libomp.lib 并从另一个 LLVM 发行版复制 libomp.dll .如果有更好的方法来做到这一点,请告诉我。
关于visual-studio - Visual Studio 2019 LLVM 中的 OpenMP 链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62122247/
我经常使用 SSMS 查询数据和构建数据集,我的 IT 部门负责数据库管理。 最近我发现了 Azure Data Studio,我喜欢: 智能感知 源代码控制(例如使用 Git) 来自社区的扩展 SQ
我想根据我使用的 visual studio 版本编译不同的东西,比如 #if VISUAL_STUDIO_VERSION > 2015 eventH?.Invoke(this, EventArgs.
我们的开发团队计划从 visual studio 2005 升级到 visual studio 2010 -- 跳过 visual studio 2008。 大部分项目是VB ASP.NET项目,使用
我的Visual Studio 2015无法构建2010平台工具集。它说: The build tools for Visual Studio 2010 (v100) cannot be found.
我目前正在使用 Visual Studio 2015 来编程 ASP.NET Core 应用程序。我对安装 Visual Studio 2017 有以下疑问: 什么被认为是最佳实践和/或最干净的方法?
尝试从扩展和更新获取 Visual Studio 扩展时,出现以下错误:- 向 visualstudiogallery.msdn.microsoft.com/Services/VStudio/Exte
这个问题在这里已经有了答案: Can Visual Studio Code and VS 2012 be installed on same computer? (1 个回答) 关闭去年。 在安装了
作为标准安装的一部分,Visual Studio Code 带有一个名为“Monokai Dimmed”的颜色主题。 有没有办法将它移植到 Visual Studio 2015?我检查了社区主题( h
我想开始编程 CUDA。 我已经安装了 Visual Studio 2010 Express。 我还安装了 nVidia nSight Visual Studio。 而且我具备所有常见的先决条件(Ne
Visual Studio Community Edition是否可以使用Visual Studio Online帐户上的存储库? 我一直为包含在Online帐户中的Visual Studio Onl
我有一个我一直在开发的应用程序,但在 android studio 上遇到了问题。当我点击“build->run”然后选择我的设备时,应用程序永远不会在我的手机上运行(并且自动出现的android-s
我正在使用Visual Studio2010。我面临的一个问题是,当我创建一个新的Web项目时,Visual Studio将创建该项目,并且不会在解决方案资源管理器中显示其解决方案。 另一件事是,我想
我通读了这里的许多帖子,却找不到一个有效的明确答案。因此,在花了一些时间使它生效之后,我认为应该发布它。 问题:发布配置文件将建立在服务器上,但不会发布。 解: 确保已安装Microsoft Wind
我正在尝试使用Visual Studio 2012构建针对.NET 3.5的C++ CLI应用程序。 通过安装Visual Studio 2008,并指定v90平台工具集,我已经在一台机器上进行了这项
我在 Microsoft Visual Studios 2013 中有一个项目,我想在 Microsoft Visual Studios 2010 中打开它。有什么简单的方法吗?还是我必须在2010年
我想知道,如果我发送一个解决方案文件夹(它是用 visual studio C# 编写的),您可以在 visual studio for mac 中打开解决方案吗? 在visual studio 20
有没有办法在 Visual Studio Code 和 Visual Studio 中设置相同的快捷方式(而不必每次都手动更改它们)? 例如,我在 Visual Studio Code 中经常使用 A
我刚开始了解 Visual Studio Code。我想知道,我可以将 Visual Studio 替换为所有 .NET 开发相关的工作吗? 我可以节省 Visual Studio 许可的成本吗? V
我安装了具有有效许可证(Visual Studio 订阅)的 Visual Studio 2019 企业版(VS 2019 16.1.4),它运行良好。 突然之间,当我尝试打开项目或项目中的任何文件时
我一直在使用 Compass 编译 Windows 环境中的 sass 文件,无论是在命令行上还是使用 Compass-app 来查看目录。 我刚刚开始使用 Visual Studio(专业版 201
我是一名优秀的程序员,十分优秀!