Gcc

Gcc:ld找不到-lc

  • February 10, 2021

我正在嘗試編譯一個簡單的程序

gcc main.c

和 gcc 向我拋出以下錯誤

/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

我該如何解決這個問題?

我在 Linux Mint 17.2 上,gcc 版本是 4.8.4

ld是連結器,即將您編寫的程式碼與預先存在的庫程式碼聯繫在一起的程序。-lc表示儲存在文件libc.a中並且因為選項-lc被傳遞給連結器而被連結的庫。

libcC 標準庫,它會自動連結到每個程序中,除非您明確要求它不是(除了編譯 libc 本身之外很少這樣做,因為沒有 libc,您幾乎無法做任何事情,而您絕對不能做任何模糊便攜的事情)。

您需要提供libc.a. 你可以找到它apt-file search /libc.a(你需要先安裝apt-file,然後通過執行來初始化它sudo apt-file update)。該包稱為libc6-dev;Debian 和衍生產品(包括 Ubuntu、Mint 等)中的大多數開發包都被呼叫,其中 NAME 是庫集合的名稱(並不總是您連結的特定庫的名稱,例如,該包包括其他庫,例如as ) 和 # 是版本號。lib*NAME*#-dev``libc6``libm

幾乎任何東西都需要 C 標準庫來建構,因此它是build-essential package的依賴項,如果您進行任何編譯,您應該包含它。

引用自:https://unix.stackexchange.com/questions/228886