I would like to include a different file depending on the version of GCC. More precisely I want to write:
#if GCC_VERSION >= 4.2 # include <unordered_map> # define EXT std #elif GCC_VERSION >= 4 # include <tr1/unordered_map> # define EXT std #else # include <ext/hash_map> # define unordered_map __gnu_cxx::hash_map # define EXT __gnu_cxx #endif
I don't care about gcc before 3.2.
I am pretty sure there is a variable defined at preprocessing time for that, I just can't find it again.
So if you ever need to check the version of the GCC C++ compiler that you have installed on your PC, you can do it through the command prompt by typing in the single line, g++ --version, and this will return the result.
The current version is 11.
Just use g++ -v or gcc -v which will give you your compiler version. You can also go to your windows settings, click on "Apps" go to the search bar and search up c++ scroll down to the last item, and click on it. The version should be displayed fairly obviously for you.
Type “gcc –version” in command prompt to check whether C compiler is installed in your machine.
There are a number of macros that should be defined for your needs:
__GNUC__ // major __GNUC_MINOR__ // minor __GNUC_PATCHLEVEL__ // patch
The version format is major.minor.patch, e.g. 4.0.2
The documentation for these can be found here.
Ok, after more searches, it one possible way of doing it is using __GNUC_PREREQ
defined in features.h
.
#ifdef __GNUC__ # include <features.h> # if __GNUC_PREREQ(4,0) // If gcc_version >= 4.0 # elif __GNUC_PREREQ(3,2) // If gcc_version >= 3.2 # else // Else # endif #else // If not gcc #endif
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With