首頁 >後端開發 >C++ >為什麼使用 GCC 編譯 C 時會出現連結器錯誤,如何修復這些錯誤?

為什麼使用 GCC 編譯 C 時會出現連結器錯誤,如何修復這些錯誤?

Susan Sarandon
Susan Sarandon原創
2024-11-29 03:57:14943瀏覽

Why Do I Get Linker Errors When Compiling C   with GCC, and How Can I Fix Them?

使用 GCC 編譯 C 程式:解決連結器錯誤

GCC 編譯器能夠編譯 C 程式。但是,在編譯過程中遇到連結器錯誤(如提供的範例所示)可能會導致錯誤地假設 GCC 無法編譯 C 。

了解連結器錯誤

報告的連結器錯誤與 GCC 編譯 C 的能力無關。它們表明缺少對 C 程式所需的函數和庫的引用。具體來說,這些錯誤是指在標準 C 庫中找不到的符號,該庫是 GCC 連結的預設庫。

透過連結到 C 標準函式庫修復錯誤

要解決連結器錯誤,需要將 C 程式連結到 C 標準庫。這可以透過修改編譯命令來完成,如下所示:

gcc info.C -lstdc++

-lstdc 標誌指示 GCC 將程式與標準 C 庫鏈接,其中包含缺失符號的定義。

替代方案:使用 g

或者,建議使用專用 C編譯器 g ,簡化了編譯過程。 g 理解 C 語言語義,並預設自動連結到 C 標準函式庫。

gcc 和g 之間的區別

正如Rup 在提供的答案中所解釋的,gcc根據檔案副檔名選擇後端編譯器,但預設僅連結到標準C 函式庫。另一方面,g 也根據擴展名選擇後端,但它會將 C 和 C 原始程式碼編譯為 C,並與 C 標準庫鏈接,而不管檔案副檔名如何。

以上是為什麼使用 GCC 編譯 C 時會出現連結器錯誤,如何修復這些錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn