gpt4 book ai didi

c++ - 如何用clang和mingw-w64进行编译?

转载 作者:行者123 更新时间:2023-12-02 10:03:55 55 4
gpt4 key购买 nike

我正在尝试将langw和mingw-w64的libstdc++一起使用clang10,因为MSVC header 不支持clang10。我不介意没有标准库的新部分,我只想使用新的语言功能。

我的x86_64的mingw-w64版本8.1.0具有POSIX线程和SEH异常,并且使用以下命令运行clang:

clang++ -target x86_64-pc-windows-gnu -std=c++20 ...

一切正常。应该在clang 10中实现的所有语言功能都可以正常工作,但是当我抛出任何异常时,这会在我运行程序时发生(程序编译正常):
Mingw-w64 runtime failure:
Unknown pseudo relocation protocol version 65536.

我尝试使用SJLJ异常安装mingw,并在clang中使用 -fsjlj-exceptions标志,但是该程序甚至无法编译:
C:\Users\egst\AppData\Local\Temp\test-f4a4de.o:test.cpp:(.text+0x82): undefined reference to `__gxx_personality_sj0'
C:\Users\egst\AppData\Local\Temp\test-f4a4de.o:test.cpp:(.text+0xd9): undefined reference to `_Unwind_SjLj_Register'
C:\Users\egst\AppData\Local\Temp\test-f4a4de.o:test.cpp:(.text+0x177): undefined reference to `_Unwind_SjLj_Resume'
clang++ --version显示 Target: x86_64-pc-windows-msvc。也许我应该使用 x86_64-pc-windows-gnu的版本?目前有什么方法可以使这项工作正常进行,还是应该等待MSVC的支持?除了MSVC和MinGW之外,还有其他选择吗?

最佳答案

基于@HolyBlackCat的建议,我使用MSYS2进行了尝试,并且效果很好。我只安装了MSYS2,然后从MSYS bash安装了this软件包。它将所有内容安装在...\msys2\mingw64中。您会得到clang 10(+ gcc 9.3)和所有必需的STL header (尽管仍然没有像<concepts>的c++ 20 header )。

关于c++ - 如何用clang和mingw-w64进行编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61206449/

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