GCC给出了#34; - :未知选项"

时间:2016-01-12 12:06:02

标签: gcc makefile

我正在尝试编译当前代码:https://github.com/Cyan4973/zstd

但是当运行" make"命令我得到:

user@pc:~/dev/zstd$ make
make -C programs
make[1]: Entering directory `~/dev/zstd/programs'
cc      -I../lib -DZSTD_VERSION=\"0.4.6\" -I../lib/legacy -I./legacy -DZSTD_LEGACY_SUPPORT=1 -O3   -std=c99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -Wstrict-aliasing=1   ../lib/zstd_compress.c ../lib/zstd_decompress.c ../lib/fse.c ../lib/huff0.c ../lib/legacy/zstd_v01.c ../lib/legacy/zstd_v02.c ../lib/legacy/zstd_v03.c ../lib/zstd_buffered.c zstdcli.c fileio.c legacy/fileio_legacy.c bench.c xxhash.c datagen.c -o zstd
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/system/bin/sh: /system/bin/sh: --: unknown option
/tmp/ccTBDu2H.o: file not recognized: File truncated
collect2: ld returned 1 exit status
make[1]: *** [zstd] Error 1
make[1]: Leaving directory `~/dev/zstd/programs'
make: *** [zstdprogram] Error 2

我检查了Makefile并且不包含任何" - ",/system/bin/sh也不在我的计算机中,如果我复制/bin/sh那么它不会改变任何东西

使用make -d调试makefile也不会提供有关此问题的任何额外信息。

有什么想法吗?

我有ubuntu 12.04。

编辑:我发现它是GCC 4.6.4给出错误。女巫根本不具有描述性......

EDIT2:我在编译过程中使用clang修复了它(一个较新的GCC也应该修复它),但是我将问题保持打开,因为我仍然不知道GCC有什么错误。此外,它可能对将来遇到同样问题的人有用。

2 个答案:

答案 0 :(得分:0)

如果这是交叉编译,也许你有混合的主机和目标工具。当使用主机工具而不是目标工具来处理目标二进制文件(即链接目标文件)时,可能会发生这种情况。

答案 1 :(得分:0)

找到它,问题和解决方案与GCC无关

我的~ /bin/文件夹中有一个名为as的脚本。因此,而不是使用as(汇编程序编译器)应用程序,而是使用脚本(我很久以前创建的脚本作为adb shell的别名)。 这导致在调用GCC时输出一堆错误,但仅仅因为GCC在某个时候调用汇编程序......就是这样。

这是一个非常愚蠢的错误。

自我注意:检查命令是否已经存在,然后用〜/ bin /中的内容覆盖它。