compiler-errors - LLVM “/manifestdependency: is not allowed in .drectve”解决方法

标签 compiler-errors llvm wxwidgets

我有一个使用wxWidgets构建的相对复杂的GUI应用程序,可以在MSVC上编译并运行良好,但是当我在Visual Studio中使用LLVM进行编译时,出现“/manifestdependency:.drectve中不允许”错误。

已经报告了该错误,并且在https://bugs.llvm.org/show_bug.cgi?id=38797上似乎可以找到解决方法,但是我似乎无法弄清楚如何更改代码。在错误报告中,它提到了如何将指令放置在PCH文件中,但是我没有在解决方案中使用预编译的 header 。我可以使用不包含wx header 和库的LLVM构建项目,因此我怀疑这与wxWidget的编译方式有关。

我不太熟悉wxWidget的工作/构建方式,有人可以提出建议吗?

最佳答案

提到链接

https://bugs.llvm.org/show_bug.cgi?id=38797


comments中有一个对我有用的解决方案(将案例OPT_manifestdependency添加到/lld/COFF/Driver.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:.drectve中不允许”消失了。
但是wxWidgets看起来有所不同。
然后,我在cmake中添加了带有target_sources的文件“wxWidgets/include/wx/msw/amd64_dpi_aware.manifest”。这为我解决了外观不同(例如字体模糊)的问题。

关于compiler-errors - LLVM “/manifestdependency: is not allowed in .drectve”解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53270825/

相关文章:

java - BufferedReader错误

xcode - 默认情况下,对于iOS4项目的XCode中已弃用的代码是否存在编译警告或错误?

unix - C/C++ 软件可以编译成字节码供以后执行吗? (独立于架构的 unix 软件。)

objective-c - "Data Model Version Compile".. 升级到 Lion (Xcode4.1) 后出错

android - AOSCompiler出现错误-CM10-Galaxy Nexus/maguro

c++ - Mac OS X Lion 上的 LLVM

xcode - Clang 扫描构建不适用于 Xcode 4.2 LLVM 3.0 构建配置

c++ - 如何绘制从 glReadPixels 捕获的屏幕截图到 wxWidgets 对话框/面板

python - wx.ListBox.HitTest 在 Mac 上不工作

c++ - wxSizer 和 wxStaticBitmap 忽略最小尺寸