I'm trying to test for some C++ features via preprocessor macros. Some macros (like __GXX_VERSION__) are only triggered by including a C++ standard library file. According to Issue 67195, "cpp and g++ does not define __GLIBCXX__", I should only need to include c++config.h. The following is failing to pickup GCC's standard C++ configuration file: g++ -include c++config.h -dM -E - < /dev/.null | sort The command (and variations like "-include c\+\+config.h" and "-include bits/c++config.h") produces: cc1 fatal error: c++config.h: no such file or directory I also tried with "-std=c++03", but it did not help either. I'm specifically trying to avoid the physical filesystem by way of temporary files as input, and temporary files as output. I'm also on a Debian 7 machine, which provides GCC 4.7.2. How do I force an include of GCC's standard C++ definition file? I guess a related question is, why is G++ using cc1, and not cc1plus? Thanks in advance.