尝试执行"cc1"时 gcc 错误:execvp:使用非 root 用户运行时没有这样的文件或目录
gcc error trying to exec 'cc1': execvp: No such file or directory when running with non-root user
我看到同样的问题已经被问了很多次,但我的问题是不同的。
我在ubuntu 14.04上安装了gcc,它在root用户下工作得很好。当我尝试使用非root用户进行编译时,它会抛出
错误gcc:错误试图执行'cc1': execvp:没有这样的文件或目录
一旦我用root用户编译文件,非root用户可以执行文件而没有任何错误,但它不能编译文件。
我怀疑文件权限有问题,我检查了cc1的权限,非root用户对文件有执行权限。
第一种方式:
在root
帐户下使用命令:
gcc cc1的ls -l $上一个命令的输出
显示cc1
和gcc
的位置以及cc1
的权限
检查cc1
文件是否有正确的权限
然后在"regular"用户:
gcc
which gcc
的输出应该与root相同。
如果正确且gcc
的路径与root
相同,则将PATH
添加到用户的cc1
中。
root
帐户下:
gcc -v hello_world.c 2>&1 | grep cc1
在"regular"帐户。
它将显示用于编译的实际命令。
比较它们并检查权利和PATH
,如第一种方式
添加PATH使用:export PATH=$PATH:$add_new_path_to_folder_here
在我的例子中,这个错误发生在试图在Ubuntu上编译ffi, nokogiri和其他gem的更新版本时。gcc -v
显示我正在使用gcc和g++ 4.8。
修复是将我的gcc/g++符号链接切换到4.9而不是4.8。
$ which gcc
$ ls -ld /usr/local/bin/gcc
$ sudo rm /usr/local/bin/gcc
$ sudo ln -s /usr/bin/gcc-4.9 /usr/local/bin/gcc
$ ls -ld /usr/local/bin/gcc
相关文章:
- CMake-按正确顺序将项目与C运行时对象文件链接
- 读取文件时运行时的未知行为
- 生成文件无法在运行时链接库
- glfw 的基本设置会导致与 emscripten 生成的 js 文件中的事件侦听器有关的运行时错误
- 在 Linux 上没有 /proc/self/exe 的 C/C++ 运行时可执行文件的大小?
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- 当我运行MEX文件时,MATLAB崩溃
- 如何在运行时对程序创建的.sys文件设置文件版本
- C++ 可执行文件在运行时找不到库,即使它在 /usr/lib 中(在 Linux 上)
- 如何在运行时从 c++ 中的 DLL 文件创建对象?
- 在 Qt 中将 x 可执行文件作为按钮事件运行时出错
- 访问使用 Bazel 构建的应用程序中的运行时文件
- Bash 代码,仅在当前可执行文件完成运行时在循环中运行可执行文件
- 如何处理在 bash 文件中获取运行时输入的 c++ 程序
- cl 生成的可执行文件在第一次运行时运行速度非常慢
- 程序运行时,未读取文件
- 在流体中更改 .fl 文件在使用 Visual Studio 运行时不会更改 UI
- 我的C 程序第二次运行时首先编写文件内容
- 在任何平台上执行任何Qt5应用程序的重要dll文件是什么(运行时文件dll)
- 带CLR的c++ DLL:如何编写清单,以便使用SxS的运行时文件