【问题标题】:set `CC='clang'` with `export`, but `./configure` is still using `gcc`用 `export` 设置 `CC='clang'`,但 `./configure` 仍在使用 `gcc`
【发布时间】:2017-08-17 19:07:58
【问题描述】:

从 R-devel svn 分支编译 R,我愿意

export CC='clang'
export CXX='clang++'
sudo ./configure

但配置脚本仍然尝试使用gcc 作为编译器。为什么?

【问题讨论】:

  • 很抱歉我的帖子,但这是一个非常愚蠢的错误,我希望其他人用谷歌搜索来节省我刚刚浪费的大量时间。
  • 这不是好的做法。首先以用户身份构建包,如果需要,然后sudo make install

标签: r gcc makefile configure


【解决方案1】:

因为sudo 读取root 用户的环境变量,但export 将shell 变量保存到您的 用户环境。 (仅在该终端会话中)

要解决这个问题,您需要使用sudo -E ./configure 进行配置,

当以更高的权限执行./configure 时,它会从您的用户帐户(= 登录名)中读取环境变量。还可以查看sudo -H 标志(在man sudo 内)。


或者您可以先sudo su 进入 root 帐户,然后在该 root shell 中export CC='clang'

(root shell 提示符可能以# 而不是$ 开头,并且缺少来自/home/user/.bashrc 的其他配置细节——例如着色)

【讨论】:

    猜你喜欢
    • 2015-03-04
    • 2012-02-15
    • 2012-12-24
    • 2020-06-02
    • 1970-01-01
    • 2010-10-30
    • 2016-01-15
    • 2017-10-12
    • 1970-01-01
    相关资源
    最近更新 更多