簡體   English   中英

C ++中的編譯器版本,名稱和OS檢測

[英]Compiler version, name, and OS detection in C++

我需要使用C ++檢測操作系統名稱,編譯器名稱和編譯器版本,因為我需要更改每種情況的設置。

我怎樣才能做到這一點?

我建議通過提供-D_i386 -DENDIAN = 1234 -D_linux在構建腳本中定義平台。 但如果您仍然認為另一個預先設定的項目是您的朋友:

http://sourceforge.net/apps/mediawiki/predef/index.php?title=Main_Page

您將無法在編譯時檢測到操作系統。 但是,您將能夠確定編譯器 - 實際上所有編譯器都定義了指示其存在的宏,如__GNUC__或類似GCC和MSVC具有__MSC_VER__或類似的東西。 您必須檢查他們的文檔中的實際宏名稱,我已經忘記了。

編輯:為了澄清,您可以檢查包含哪些系統的標頭。 例如,Windows標頭定義了許多宏,如WINNT_VER ,它們提供了最低版本的Windows。 但是你無法檢測編譯器執行的操作系統。

通常,您將該任務留給構建環境。 如果你可以假設一個posixy設置,或者通過任何其他被認為合適的方法,可以使用像uname這樣的命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM