首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
宝塔
V2EX  ›  程序员

export ARCHFLAGS='-arch i386 -arch x86_64'

  •  
  •   b00tyhunt3r · 42 天前 · 861 次点击
    这是一个创建于 42 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为权限问题没法在目录下编译生成可执行文件( OSX )

    敲入上面这句神奇命令后,sudo bash,一切限制都不复存在只留下原地懵逼的我

    有大佬能一个词一个词的讲解一下这句神秘指令的原理吗?

    10 回复  |  直到 2019-10-08 22:21:25 +08:00
        1
    reus   42 天前 via Android
    难道不是 sudo 的效果?
    sudo bash 是进入 root shell,具有所有权限
        2
    b00tyhunt3r   42 天前
    @reus 我也很费解 但确实和 sudo 无关
        3
    ysc3839   42 天前
    ```
    $ export ARCHFLAGS='-arch i386 -arch x86_64'
    $ env | grep ARCH
    ARCHFLAGS=-arch i386 -arch x86_64
    $ sudo bash
    # env | grep ARCH
    #
    ```
    sudo 并不会保留环境变量。
        4
    momocraft   42 天前
    你怎样得知和 sudo 无关
        5
    b00tyhunt3r   42 天前 via iPad
    @momocraft
    因为我不键入神奇指令 export ARCHFLAGS='-arch i386 -arch x86_64'的情况下,
    只简单执行 sudo bash 依然 permission denied
        6
    b00tyhunt3r   42 天前 via iPad
    @ysc3839
    大佬可以多说几句吗?
        7
    momocraft   42 天前
    你能寫出一個在別人機器復現此問題的步驟嗎
        8
    b00tyhunt3r   42 天前
    @momocraft 你是 OSX 系统吗?
    /Library/WebServer/CGI-Executables
    随便拖一个.c 文件进去 bash 编译看看
        9
    nyanyh   41 天前
    /Library/WebServer/CGI-Executables
    ❯ clang++ ./sort.cpp -o sort -std=c++11
    ld: can't open output file for writing: sort, errno=13 for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    /Library/WebServer/CGI-Executables
    ❯ sudo clang++ ./sort.cpp -o sort -std=c++11
    (此处编译成功)

    /Library/WebServer/CGI-Executables
    ❯ sudo bash

    The default interactive shell is now zsh.
    To update your account to use zsh, please run `chsh -s /bin/zsh`.
    For more details, please visit https://support.apple.com/kb/HT208050.
    bash-3.2# ls
    sort sort.cpp
    bash-3.2# clang++ ./sort.cpp -std=c++11
    bash-3.2#

    我认为你这个问题不能复现的概率接近 100%,sudo 不保留环境变量,这个目录单纯是因为没有权限才导致的无法编译,和环境变量没有关系
        10
    nyanyh   41 天前
    除非是你的编译脚本里有额外操作,直接用 clang 编译我觉得不会出任何问题……
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2633 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 23ms · UTC 13:34 · PVG 21:34 · LAX 05:34 · JFK 08:34
    ♥ Do have faith in what you're doing.