gpt4 book ai didi

c++ - 为什么英特尔编译器会生成需要 libiomp5mt.dll 的输出,即使我要求静态链接?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:52 24 4
gpt4 key购买 nike

我正在使用/MT 开关编译一个 openmp 项目(或等效地在 visual studio 设置中,“C++:代码生成:运行时库:多线程”。

但是,当我认为上述设置要求静态链接时,Visual Studio 仍然报告我的输出需要 libiomp5mt.dll(多线程 dll)。

我错过了什么地方还有其他选择吗?

或者,如果 dll 是必需的,我假设我可以将 Intel 的 dll 与我自己的应用程序一起重新分发?

最佳答案

英特尔网站说:

You are strongly encouraged to dynamically link in the compatibility OpenMP* run-time library libiomp (i.e libiomp5md.lib and libiomp5md.dll , located in the [Compiler Dir]\lib directory), even if other libraries are linked statically. Linking to static OpenMP* run-time library (i.e libiomp5mt.lib) is not recommended. Because multiple OpenMP libraries in one appliation causes performance problems (too many threads) and may cause correctness problems if more than one copy is initialized.

因此,尽管您可以将 OpenMP 配置为静态链接,并且此配置独立于 C 运行时,但建议您不要这样做。

据我所知,英特尔的 OpenMP 许可允许免版税再分发。为了安全起见,您应该检查 OpenMP 附带的许可证。

关于c++ - 为什么英特尔编译器会生成需要 libiomp5mt.dll 的输出,即使我要求静态链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7270639/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com