亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 Makefile 運行時權限被拒絕

從 Makefile 運行時權限被拒絕

Go
海綿寶寶撒 2023-02-21 16:11:13
我遇到了一些奇怪的權限被拒絕錯誤,我不知道可能來自哪里。$ go run .Hello from go$ make rungo run .make: go: Permission deniedmake: *** [Makefile:2: run] Error 127$ make run2echo "Make says hello" ; go run .Make says helloHello from go$ cat Makefile run:    go run .run2:    echo "Make says hello" ; go run .$ cat main.go package mainimport "fmt"func main() {    fmt.Println("Hello from go")}我的終端是在 Ubuntu 22.04 上運行的 bash。run我的目標和直接運行 go 會導致權限被拒絕錯誤有什么區別?run和run2允許它在其中一個工作而不在另一個工作之間有什么區別?編輯:使用-d/運行 make--trace$ make -d run<...snip...> No need to remake target 'Makefile'.Updating goal targets....Considering target file 'run'. File 'run' does not exist. Finished prerequisites of target file 'run'.Must remake target 'run'.go run .make: go: Permission deniedmake: *** [Makefile:2: run] Error 127$ make --trace runMakefile:2: target 'run' does not existgo run .make: go: Permission deniedmake: *** [Makefile:2: run] Error 127$ make --trace run2Makefile:5: target 'run2' does not existecho "Make says hello"; go run .Make says helloHello from go
查看完整描述

2 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這是由于 GNU make 中的錯誤(實際上是 gnulib 中的錯誤)。這意味著您在您的某個目錄中有一個名為 的目錄(在包含可執行文件的實際目錄之前)。goPATHgo

因此,如果您有一個目錄 /usr/bin/go/.并且在/usr/bin您的 上PATH,您將看到此問題。

您應該檢查PATH并確保刪除包含此類子目錄的所有目錄。如果你不能從你的目錄中刪除那個目錄PATH(需要包含你的子目錄的目錄是不尋常的,PATH但我想這是可能的)并且你不能將目錄重命名go為其他東西,你必須確保 GNU make 調用 shell , 通過添加特殊字符。就;足夠了:

run:     
    go run . ;


查看完整回答
反對 回復 2023-02-21
?
蕪湖不蕪

TA貢獻1796條經驗 獲得超7個贊

您遇到的問題可能是由于您的 shell 和Makefile. 例如,如果你有一個 shell 別名,go這個Makefile別名對Makefile. 很難猜測差異可能在哪里。


您可能想嘗試通過在您的以下內容中嘗試調試問題Makefile:


echo $(PATH)

command -v go

并在您的 shell 中運行相同的命令并比較結果。


請注意,默認的 shellMakefile是/bin/sh而你可能有bashor zsh。


這里有一些方便的默認值來配置你的Makefile構建:


LANG=en_US.UTF-8

SHELL=/bin/bash

.SHELLFLAGS=--norc --noprofile -e -u -o pipefail -c


查看完整回答
反對 回復 2023-02-21
  • 2 回答
  • 0 關注
  • 542 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號