有没有办法找到一个特定的 gcc 构建,它是用哪些开关构建的?
我听说在使用源代码构建 gcc 时,有几个开关可以确定某些特定功能是否可用,例如 Thread_posix
和/或 Win32_thread
在 Windows
上构建 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 名称中推断出来,它总是包含 sjlj
、dw2
或 seh
。
libgcc中使用的线程实现:
- win32:默认,可选
--enable-threads=win32
- posix:
--enable-threads=posix
据我所知,这些不能从文件名中推断出来。
关于gcc - 有没有办法找到构建 mingw 构建的开关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16103048/