[英]Why does `?=` (“set if absent”) cause make to unset an environment variable?
[英]make install saying CUDADIR environment variable not set, when it is
我目前正在嘗試安裝MAGMA ,但是嘗試運行“ sudo make install”會給我錯誤:
$ sudo make install prefix=/usr/local/magma
make.check-cuda:7: *** Set $CUDADIR, preferably in your environment, e.g.,
run "export CUDADIR=/usr/local/cuda" in ~/.bashrc, or "setenv CUDADIR
/usr/local/cuda" in ~/.cshrc. Stop.
我肯定知道CUDADIR已設置,並且已在〜/ .bash_profile中設置,因此我不確定為什么它會失敗。 有什么理由可能找不到它? 當我運行“ make”時,它似乎工作正常。
$ set | grep CUDADIR
CUDADIR=/usr/local/cuda
它需要既設置和導出。 通過查看set
的輸出,您只會看到在shell中設置的變量... shell只會將導出的變量發送到它調用的程序(例如make
)。 您沒有向我們展示如何在~/.bashrc
設置變量,但是我認為它是這樣的:
CUDADIR=/usr/local/cuda
更改為:
export CUDADIR=/usr/local/cuda
如果要查看導出的變量,最簡單的方法是使用env
,而不是set
,如下所示:
$ env | grep CUDADIR
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.