我以前可以像平常一样运行 make,但现在我必须以超级用户身份运行 make,否则它会失败,提示 C 编译器无法创建可执行文件。为什么会发生这种情况?
答案1
可能是您错误地执行了一次 sudo make,现在 make 无法工作,因为它可能需要重写文件或写入在 sudo 下创建的目录,因此普通用户无法写入。
答案2
make
和之间是有区别的make install
。make 只编译你的东西,make install 复制系统中的可执行文件。然后 make install 通常必须以 root 身份执行 ( sudo make install
) 才能获得对目标目录 (/bin、/sbin、/usr/bin ...) 的写访问权限。声明它make
本身在没有 root 权限的情况下无法编译确实很尴尬。
- 检查您是否作为用户对要构建的(所有)文件具有读写权限。特别是如果您从某些第三方(usbkey、web 等)获取源代码,谁知道作者是如何设置权限的?
make
然后确保您具有对将创建目标文件的文件夹的读写访问权限。- 然后具体告诉我们。你遇到了什么错误?你有一些日志可以分享吗?