
我以前能夠像平常一樣運行 make,但現在我必須以超級使用者身分執行 make,否則會失敗,提示 c 編譯器無法建立可執行檔。為什麼會發生這種情況?
答案1
可能是您錯誤地執行了 sudo make 一次,現在 make 無法工作,因為它可能需要重寫文件或寫入在 sudo 下創建的目錄,因此普通用戶無法寫入。
答案2
make
和之間有差別make install
。 make 只編譯你的東西,make install 複製系統中的執行檔。然後 make install 通常必須以 root ( sudo make install
) 身分執行以獲得對目標目錄(/bin、/sbin、/usr/bin ...)的寫入存取權。聲明make
本身在沒有 root 權限的情況下無法編譯確實很尷尬。
- 檢查您作為使用者是否具有對您嘗試建立的(所有)檔案的讀寫存取權限。特別是如果您從某些第三方(usbkey、web等)獲取原始程式碼,誰知道作者是如何設定權限的?
make
然後確保您對將在其中建立物件檔案的資料夾具有讀寫存取權限。- 然後具體給我們。是什麼錯誤讓你彈出?您有一些日誌可以分享嗎?