我不是一位经验丰富的 C 程序员,但有时我会编译一些 C 代码。
上次我成功编译并运行一些 C 代码时,是在我现在使用的同一系统上进行的(同一台机器上的同一操作系统,没有发生操作系统卸载/重新安装)。我大约在 2 个月前这样做了。
现在,如果我尝试编译哪怕一个非常简单的代码,如下所示:
#include <stdio.h>
main () {
printf("Hello");
return 0;
}
我得到:
gcc: error trying to exec 'cc1': execvp: No such file or directory
输出如下gcc -v -Wall
:
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5.1' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --e
nable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
COLLECT_GCC_OPTIONS='-v' '-Wall' '-mtune=generic'
cc1 -quiet -v h1.c -D_FORTIFY_SOURCE=2 -quiet -dumpbase h1.c -mtune=generic -auxbase h1 -Wall -version -fstack-protector -o /tmp/ccOlexzJ.s
gcc: error trying to exec 'cc1': execvp: No such file or directory
我不知道我的系统发生了什么。
系统状况:
--
uname -svrmpio
:
Linux 2.6.32-40-generic #87-Ubuntu SMP Tue Mar 6 00:56:56 UTC 2012 x86_64 unknown unknown GNU/Linux
--
lsb_release -rd:
Description: Ubuntu 10.04.4 LTS
Release: 10.04
--
apt-cache policy gcc-4.4
(我不知道这个命令是做什么的):
Installed: 4.4.3-4ubuntu5.1
Candidate: 4.4.3-4ubuntu5.1
Version table:
*** 4.4.3-4ubuntu5.1 0
500 http://se.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages
500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages
500 http://archive.ualinux.com/ubuntu/ lucid/main Packages
100 /var/lib/dpkg/status
4.4.3-4ubuntu5 0
500 http://se.archive.ubuntu.com/ubuntu/ lucid/main Packages
--
ls -l /usr/lib/gcc/i486-linux-gnu/4.4/
:
ls: cannot access /usr/lib/gcc/i486-linux-gnu/4.4/: No such file or directory
--
gcc --version
:
gcc (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3
--
dpkg -s build-essential:
Package: build-essential
Status: install ok installed
Priority: optional
Section: devel
Installed-Size: 48
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Version: 11.4build1
--
locate cc1
:
(ECRYPTFS references omitted):
/usr/lib/gcc/amd64-mingw32msvc/4.4.2/cc1
/usr/lib/gcc/i586-mingw32msvc/4.4.2/cc1
/usr/lib/gcc/x86_64-linux-gnu/4.1/cc1
/usr/lib/gcc/x86_64-linux-gnu/4.3/cc1
/usr/lib/gcc/x86_64-linux-gnu/4.4/cc1
--
编辑:
env
:
TERM=xterm
SHELL=/bin/bash
CUDA_HOME=/usr/local/cuda
LD_LIBRARY_PATH=:/usr/local/cuda/lib64
GLADE_MODULE_PATH=:/usr/lib/glade3/modules
DEFAULTS_PATH=/usr/share/gconf/xubuntu.default.path
XDG_CONFIG_DIRS=/etc/xdg/xdg-xubuntu:/etc/xdg
DESKTOP_SESSION=xubuntu
PATH=/usr/local/cuda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/cuda/bin
GDM_KEYBOARD_LAYOUT=us
LANG=en_US.utf8
MANDATORY_PATH=/usr/share/gconf/xubuntu.mandatory.path
GDMSESSION=xubuntu
SHLVL=1
GTK_PATH=:/usr/lib/gtk-2.0
XDG_DATA_DIRS=/etc/xdg/xdg-xubuntu:/usr/local/share:/usr/share
LESSOPEN=| /usr/bin/lesspipe %s
DISPLAY=:0.0
LIBGLADE_MODULE_PATH=:/usr/lib/libglade/2.0
GLADE_CATALOG_PATH=:/usr/share/glade3/catalogs
COLORTERM=gnome-terminal
_=/usr/bin/env
--
编辑2:
编译命令直接在终端中发出(无需 Python 或其他)。
--
gcc --print-search-dirs
:
install: /usr/lib/gcc/x86_64-linux-gnu/4.4.3/
programs: =/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/libexec/gcc/x86_64-linux-gnu/4.4.3/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../x86_64-linux-gnu/bin/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../x86_64-linux-gnu/bin/
libraries: =/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../x86_64-linux-gnu/lib/x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../x86_64-linux-gnu/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../x86_64-linux-gnu/4.4.3/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/:/lib/x86_64-linux-gnu/4.4.3/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/4.4.3/:/usr/lib/../lib/:/usr/lib/x86_64-linux-gnu/x86_64-linux-gnu/4.4.3/:/usr/lib/x86_64-linux-gnu/../lib/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../x86_64-linux-gnu/lib/:/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../:/lib/:/usr/lib/:/usr/lib/x86_64-linux-gnu/
我也尝试编译你好文件,gcc-4.3 hello.c -o hello
它可以工作。但是,我无法运行cmake
命令,而且从存储库下载和构建软件包失败gcc: error trying to exec 'cc1': execvp: No such file or directory
(我猜是因为 cmake 和 dpkg 不知道如何使用 gcc-4.3 而不是 gcc)。
--
sudo ldconfig
:
/sbin/ldconfig.real: File /usr/local/cuda/lib/libcurand.so is empty, not checked.
/sbin/ldconfig.real: file /usr/local/cuda/lib/libcusparse.so.4 is truncated
/sbin/ldconfig.real: file /usr/local/cuda/lib/libcusparse.so is truncated
/sbin/ldconfig.real: file /usr/local/cuda/lib/libcusparse.so.4.0.12 is truncated
/sbin/ldconfig.real: File /usr/local/cuda/lib/libcurand.so.4.0.12 is empty, not checked.
/sbin/ldconfig.real: File /usr/local/cuda/lib/libcurand.so.4 is empty, not checked.
也许该问题与系统上安装的 CUDA 有关?
我尝试重新安装 build-essential,但没有用。我还尝试重新安装 C 预处理器 (cpp),但系统警告说它将删除许多核心包(如 acpi-support、xserver-xorg-* 等),所以我没有这么做。
答案1
尝试删除 gcc 并重新安装。
去除:
sudo apt-get purge gcc
要再次安装:
sudo apt-get update
sudo apt-get install gcc
这应该可以解决问题。
答案2
我遇到了同样的问题。就我而言,它与 GNU C 预处理器有关,我不小心删除了文件 /usr/bin/cpp-4.6 和目录 /usr/lib/gcc/i686-linux-gnu/4.6。最后,我重新安装了 GNU C 预处理器,它就起作用了。对于你的情况,请转到https://ftp7.de.netbsd.org/pub/releases.ubuntu.com/ubuntu/pool/main/g/gcc-4.4/,并下载文件cpp-4.4_4.4.3-4ubuntu5.1_amd64.deb,也许它可以起作用。