我正在尝试从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/`
答案 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
正在尝试访问“目录”(即一个名为“目录”的对象),该目录不存在。
可能是错误的扩展或意外的环境变量。
尝试检查相应的Makefile
和make
命令。
例如,如果您发出了
等命令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
?