LLVM "manifestdependency: is not allowed in .drectve "的解决方法。

问题描述 投票:1回答:1

我有一个使用wxWidgets构建的相对复杂的GUI应用程序,我可以在MSVC上编译并正常运行,但是当我在Visual Studio中使用LLVM编译时,我出现了 "manifestdependency: is not allowed in .drectve "错误。

这个错误已经被报告了,这里似乎有一个解决方法 https:/bugs.llvm.orgshow_bug.cgi?id=38797。然而,我似乎不明白我需要如何修改我的代码。在错误报告中,它提到了如何在PCH文件中放置指令,但我在我的解决方案中没有使用预编译的头文件。我可以使用LLVM构建项目,其中我没有包含wx头和库,所以我怀疑这与wxWidget的编译方式有关。

我对wxWidget的编译方式不太熟悉,有人能给点建议吗?

compiler-errors llvm wxwidgets
1个回答
1
投票

通过上述链接

https:/bugs.llvm.orgshow_bug.cgi?id=38797。

事在人为 意见 这对我来说是有效的(添加 case OPT_manifestdependency:lldCOFFDriver.cpp).

$ git diff
diff --git a/lld/COFF/Driver.cpp b/lld/COFF/Driver.cpp
index 7372505bb61..f8afbb93374 100644
--- a/lld/COFF/Driver.cpp
+++ b/lld/COFF/Driver.cpp
@@ -408,6 +408,7 @@ void LinkerDriver::parseDirectives(InputFile *file) {
     // `#pragma comment(linker, "/flag")`-generated sections.
     case OPT_editandcontinue:
     case OPT_guardsym:
+    case OPT_manifestdependency:
     case OPT_throwingnew:
       break;
     default:

花了一段时间编译llvm lld,但最后错误信息是 "错误:manifestdependency: is not allowed in .drectve" 消失了。但是wxWidgets看起来不一样了。"wxWidgetsincludewxmswamd64_dpi_aware.manifest" 和 cmake 中的 target_sources。这样我就解决了外观不同的问题 (比如字体模糊)。

© www.soinside.com 2019 - 2024. All rights reserved.