2 回答

TA貢獻(xiàn)1830條經(jīng)驗 獲得超3個贊
這是由于 GNU make 中的錯誤(實際上是 gnulib 中的錯誤)。這意味著您在您的某個目錄中有一個名為 的目錄(在包含可執(zhí)行文件的實際目錄之前)。go
PATH
go
因此,如果您有一個目錄 /usr/bin/go/.
并且在/usr/bin
您的 上PATH
,您將看到此問題。
您應(yīng)該檢查PATH
并確保刪除包含此類子目錄的所有目錄。如果你不能從你的目錄中刪除那個目錄PATH
(需要包含你的子目錄的目錄是不尋常的,PATH
但我想這是可能的)并且你不能將目錄重命名go
為其他東西,你必須確保 GNU make 調(diào)用 shell , 通過添加特殊字符。就;
足夠了:
run: go run . ;

TA貢獻(xiàn)1796條經(jīng)驗 獲得超7個贊
您遇到的問題可能是由于您的 shell 和Makefile. 例如,如果你有一個 shell 別名,go這個Makefile別名對Makefile. 很難猜測差異可能在哪里。
您可能想嘗試通過在您的以下內(nèi)容中嘗試調(diào)試問題Makefile:
echo $(PATH)
command -v go
并在您的 shell 中運行相同的命令并比較結(jié)果。
請注意,默認(rèn)的 shellMakefile是/bin/sh而你可能有bashor zsh。
這里有一些方便的默認(rèn)值來配置你的Makefile構(gòu)建:
LANG=en_US.UTF-8
SHELL=/bin/bash
.SHELLFLAGS=--norc --noprofile -e -u -o pipefail -c
- 2 回答
- 0 關(guān)注
- 507 瀏覽
添加回答
舉報