gcc - 有没有办法找到构建 mingw 构建的开关?

标签 gcc mingw

有没有办法找到一个特定的 gcc 构建,它是用哪些开关构建的?
我听说在使用源代码构建 gcc 时,有几个开关可以确定某些特定功能是否可用,例如 Thread_posix 和/或 Win32_threadWindows 上构建 MingW 的开关,第一个允许使用 std::thread 而另一个不允许,或者 sjlj build vs dwarf 处理异常的构建(我什至不知道它们是干什么用的!我只知道 sjlj 构建在所有情况下都慢 15%!)< br/> 那么我可以做些什么来了解这些以及这方面可能更多的信息吗?

最佳答案

是的。 gcc -v 的输出显示了所有您想知道的信息。

异常(exception)是这样的:

  • 矮人:--enable-dw2-exceptions
  • sjlj:--enable-sjlj-exceptions 对于 4.8 之前的 64 位 MinGW-w64 GCC 或什么都不做。
  • seh:--enable-seh-exceptions 对于 GCC 4.8+ 64 位 MinGW-w64 GCC 或什么都不做。

这些可以从 libgcc DLL 名称中推断出来,它总是包含 sjljdw2seh

libgcc中使用的线程实现:

  • win32:默认,可选 --enable-threads=win32
  • posix:--enable-threads=posix

据我所知,这些不能从文件名中推断出来。

关于gcc - 有没有办法找到构建 mingw 构建的开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103048/

相关文章:

c - 线程显式调度 POSIX API 给出错误

gcc - 减少 GCC 目标 EXE 代码大小?

c - 我无法在 MinGW 中编译 SDL_net

c - 为什么4.7在c中是4.6999999

eclipse - Eclipse CDT无法启动它生成的二进制文件,但可以从cmd启动

go - 如何交叉编译solaris 32位

c - 如何使用 -Werror 忽略 gcc 的 "useless storage class"?

windows - as.exe - 找不到入口点 无法在动态链接库中找到过程入口点 __printf__

c - GCC 忽略 `-mcpu=arm7tdmi` 标志并生成不支持的指令

c++ - 与 glfw 静态库的链接问题