【发布时间】:2016-05-19 18:44:55
【问题描述】:
如何通过预处理器可靠地检测 msvc 标准库?
不是带有检查 _MSC_VER 的 msvc 编译器,而是另一个使用该库的编译器?
我正在寻找特定的预处理器宏,例如 mingw 中的 __MINGW32__ ,mingw-w64 中的 __MINGW64_VERSION_MAJOR
这只是学术问题。
【问题讨论】:
-
您是否在问是否有办法在某些编译对象中检测到这一点? (.lib、.dll、.so、.o、.exe 等等)
-
你说的是像 mingw-gcc 这样的案例,它会创建链接到 MSVCRT.DLL 的可执行文件?
-
既然这只是一个学术问题,我建议你放弃它。没有可靠的方法(据我所知)来做你想做的事。你为什么要首先?编译器和它们的标准库是相当紧密耦合的——不要试图将一个与另一个一起使用......
-
检测特殊库行为的常用方法是autotools'
autoconf——预编译步骤编译并运行检测特殊行为的测试代码,编写头文件其中定义了指示检测到哪些行为的宏,并且应用程序代码包括该自动生成的标头。 -
我询问特定的预处理器宏,例如 mingw 中的
__MINGW32__,mingw-w64 中的__MINGW64_VERSION_MAJOR
标签: c visual-c++