有没有办法找到一个特定的 gcc 构建,它是用哪些开关构建的?
我听说,建立一个GCC编译出它的源代码时,有对夫妇,确定一些具体的交换机的功能可用与否例如有Thread_posix和/或Win32_thread交换机构建MingW上Windows,第一个将允许使用std :: thread 和另一个不会,或者sjlj构建 vsdwarf处理异常的构建(我什至不知道它们是做什么的!我只知道sjlj构建在所有情况下都慢了 15%!)
所以我可以在那里要了解这些以及可能在这方面的更多信息吗?
是的。的输出gcc -v显示了您想知道的所有内容。
例外是这样的:
--enable-dw2-exceptions--enable-sjlj-exceptions或者对于 4.8 之前的 64 位 MinGW-w64 GCC 什么也不做。--enable-seh-exceptions或者对于 GCC 4.8+ 64 位 MinGW-w64 GCC 什么也没有。这些都可以从libgcc的DLL名称,它总是包含推断sjlj,dw2或seh。
libgcc 中使用的线程实现:
--enable-threads=win32--enable-threads=posix据我所知,这些不能从文件名中推断出来。