我必須缺少一些非常明顯的東西,但出於某種原因,Microsoft C++編譯器(cl.exe)的命令行版本似乎不支持報告運行時的版本。我們需要編寫這樣的makefile來檢查我們工具的用戶已經安裝的編譯器版本(他們獲得帶有代碼的makefile,它們將在本地編譯,因此我們無法控制它們的編譯器版本)。從命令行查找版本的Microsoft C++編譯器(for makefiles)
在gcc中,您只需提供選項-v或--version即可獲得打印的良好版本字符串。
在cl.exe中,出現-v錯誤。
我已閱讀MSDN文檔和編譯器聯機幫助,並且找不到打印編譯器版本的開關。令人煩惱的是,編譯器啓動時總會得到版本......但似乎無法啓動編譯器只是爲了從版本中獲取版本。
Finding compiler vendor/version using qmake看起來很相似,但只處理gcc的簡單情況。
我試圖用VC++ Express 2005,如果這件事。我希望它不會,因爲檢測編譯器版本是在編譯器版本無關的方式:)
更新,這樣做可以回覆後:
- 運行cl.exe時沒有 打印其版本的任何參數有些幫助 文字。
- 這看起來像是最簡單的 便攜式版本,可以跨越vc版本獲得 版本。
- 然後你必須 解析一個多行輸出,但是這個 不是太難。
- 我們在 的末尾做了這個,它工作。
是的,那種作品。但它也提供了一些額外的輸出。猜猜我們只需要比我們必須解析gcc更困難。 – jakobengblom2 2009-08-05 13:57:07
這是正確的,你可以調用'cl',你將有可用的版本進行解析,只要考慮到它會改變與VS語言,例如對於VS 2010西班牙語,你會得到'Compilador deoptimización de C/C++ de Microsoft(R)versión16.00.30319.01 para x64',我剛剛發現一個重要的項目(https://jdk8.java.net/)依靠英文版來獲取解析版本,而這不是正確的,因爲它不會在我的西班牙語Visual Studio版本 – 2014-04-12 03:29:52
工作,你可以請更新VS 10 – TripleS 2014-04-24 13:39:33