POCO C++ 库未使用 CMAke 和 MinGW 进行编译。 Thread_WIN32.cpp __除了错误

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

大家。我尝试使用 CMake 和 MinGW 编译器构建 POCO C++ 库,但在 POCO Thread_WIN32.cpp 文件(Picrealted)中收到语法错误。我认为它在某种程度上与编译器的确切版本 posix-sjlj 有关。有人遇到过这个问题吗

设置:

  • Windows 10
  • MinGW-W64 x86_64-posix-sjlj-rev0 8.1.0
  • CMake 3.26.0-rc1

error pic (link)

更新1

我尝试了另一个版本的MinGW-w64(MinGW-W64 x86_64-posix-seh-rev0 8.1.0),但它也不起作用。我还有另一个问题:也许编译器只是让它正常工作?在 POCO GitHub 的 Thread_WIN32.cpp 文件中,setThreadName 函数中 __except 之前没有 __catch。为什么?不是应该有吗?

pic of setThreadName function from POCO GitHub

更新2 好吧,在 __try 之后不应该是 __catch,在 __try 后面跟着 __ except 就这样了。这是微软自己处理错误的方式——SEH。但我想知道是否有某种方法可以正确使用 MinGW-w64 编译器和 SEH。我在MinGW中读到了__try1和__ except1,但是网上说这可能不安全并且非常痛苦

c++ cmake poco mingw-w64
1个回答
0
投票

因此,我尝试了 MinGW-w64 编译器的一些不同变体,但它不起作用。我决定使用 Microsoft Build Tools 下载 MSVC 编译器,它运行得很好,所有库都已编译

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