Có cách nào để in tên trình biên dịch và phiên bản được sử dụng để biên dịch chương trình hay không;C: Thông tin trình biên dịch tại thời gian chạy
printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);
?
Có cách nào để in tên trình biên dịch và phiên bản được sử dụng để biên dịch chương trình hay không;C: Thông tin trình biên dịch tại thời gian chạy
printf("This is compiled with %s version %s\n", COMPILER, COMPILER_VERSION);
?
Bạn có thể làm điều này với các tiền xử lý:
tham khảo: http://predef.sourceforge.net/precomp.html
Đối với gcc:
#if defined(__GNUC__)
# if defined(__GNUC_PATCHLEVEL__)
# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ __GNUC_MINOR__ * 100 \
+ __GNUC_PATCHLEVEL__)
# else
# define __GNUC_VERSION__ (__GNUC__ * 10000 \
+ __GNUC_MINOR__ * 100)
# endif
#endif
Đối với MSVC chỉ cần sử dụng:
_MSC_FULL_VER
Không, cách lấy tên của trình biên dịch tự nó là trình biên dịch cụ thể :-P. Tuy nhiên,
gcc cung cấp macro __VERSION__
.
+1: bạn đánh bại tôi quá;) –
Err ... Nếu tôi sử dụng trình biên dịch của microsoft thì sao? – Arafangion
_MSC_FULL_VER Hãy xem liên kết. Đó là một tham chiếu cho trình biên dịch tiền xử lý cụ thể định nghĩa. –