![](/img/trans.png)
[英]C: gcc implicitly converts signed char to unsigned char and vice versa?
[英]Is clang supposed to be the same as gcc and vice versa?
我試圖編輯一些 C 代碼,編譯並測試它。 一路上,我無意中使用了不同的編譯器,即 gcc 和 clang。 然后我很無聊,只是在命令行中輸入了編譯器的兩個命令(奇怪但沒問題)。 我注意到,當我這樣做時,gcc 是 clang 和 clang 只是 Z2C5517DB7BC397F9B14AE357A7CEFF4 顯然,當您輸入沒有 arguments 的編譯器命令時,您會收到一條錯誤消息,指出沒有輸入文件。 當我剛剛輸入命令時,我以為 gcc 應該說這樣的話:
gcc: error: no input files
但是當我為 clang 嘗試它時,它是一樣的。 它說clang: error: no input files
。 所以我的問題是,我在使用 gcc 時是否在運行 clang? 如果是這樣,我該如何解決?
gcc 和 clang 是兩個完全不同的編譯器。 但是由於 gcc 的流行,clang 故意復制了它的許多特性。 在某些環境中(例如最近的 Mac), clang 使用別名安裝,因此如果您鍵入gcc
,您會得到clang
。 聽起來這就是你可能發生的事情。
Apple used to use gcc
in Xcode a long time ago, and then they made clang
and running gcc would invoke clang to allow old build script to work correctly. 如果您需要使用 gcc 您可以使用自制軟件安裝
brew install gcc
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.