gcc:directory:没有这样的文件或目录

时间:2013-01-11 11:52:31

标签: gcc makefile arm

我正在尝试从Here为Linux 3.7内核构建mali驱动程序。

有一个单独的构建脚本,如

#!/bin/bash
export KDIR=/path/to/kernel/dir/
..
..
gcc -v//Just for testing purpose printing gcc version
make
gcc -v
... 

实际的主机有2.6内核,但我指示make使用linux 3.7内核。上面的make将调用mali驱动程序的makefile的Makefile。

对于上面的脚本, gcc版本在make命令之前和之后正确打印,但当make输入到内核目录时,无法识别gcc。

它说 gcc:directory:没有这样的文件或目录

同样也出现了arm-gcc。任何猜猜??

编辑:(输出)

make ARCH=arm -C /home/work/linux3.7/ M=/home/work/mali/driver/src/devicedrv/mali modules

make[1] : Entering directory `/home/work/linux3.7/`
gcc : directory : No such file or directory
gcc : directory" : No such file or directory 
<command-line>: warning: missing terminating " character
gcc : directory : No such file or directory
gcc : directory" : No such file or directory 
<command-line>: warning: missing terminating " character
gcc : directory : No such file or directory
gcc : directory" : No such file or directory 
<command-line>: warning: missing terminating " character
gcc : directory : No such file or directory
gcc : directory" : No such file or directory 
<command-line>: warning: missing terminating " character
CC [M]  /home/work/mali/driver/src/devicedrv/mali/common/mali_kernel_core.o
.arm-none-linux-gnueabi-gcc: directory:No such file or directory 
.arm-none-linux-gnueabi-gcc: directory":No such file or directory

make[2] : Leaving directory `/home/work/linux3.7/`

3 个答案:

答案 0 :(得分:4)

问题出在drivers / gpu / vithar / ump / src / devicedrv / Makefile.common中。它假设vithar SDK已从SVN中提取并且具有有效的SVN修订版(它没有)。

您有两种选择: 1)编辑上面的文件以跳过调用svnversion:

- SVN_REV:=$(shell ((svnversion | grep -qv exported && echo -n 'Revision: ' && svnversion) || git svn info | sed -e 's/$$$$/M/' | grep '^Revision: ' || echo ${MALI_RELEASE_NAME}) 2>/dev$
+ SVN_REV=0

2)添加命令行:

SVN_REV=0

答案 1 :(得分:3)

gcc 已被识别,找到并执行。错误“gcc:directory:no such file or directory”由gcc本身提供。

出于某种原因,gcc正在尝试访问“目录”(即一个名为“目录”的对象),该目录不存在。

可能是错误的扩展或意外的环境变量。

尝试检查相应的Makefilemake命令。

例如,如果您发出了

等命令
KDIR="/usr/Linux Kernel directory" CONFIG=pb-virtex5 BUILD=release make

存在系统误解KDIR的风险,引入两个不存在的对象“Kernel”和“directory”以及一个额外的引号。这种可能性可能解释您观察到的症状。因此,路径中的额外空间绝对值得检查。

答案 2 :(得分:0)

你打错了;你想要

  echo $(gcc -v)

但实际上,对于那个编码

  gcc -v

就够了。

您应确保在gcc中正确安装了$PATH。查看which gcc

附加物

如果您怀疑Makefile错误,请使用remake进行调试。通常,只需在终端中运行remake -x就足以了解正在发生的事情。

也许你正在向gcc传递一些奇怪的论点?或者有些错误#include