【发布时间】:2015-01-20 08:02:57
【问题描述】:
尝试编译 C 程序,每次我按照建议运行 make 或 gmake 时都会收到此错误。
$ make
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src all
gcc -g -W -Wall -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude -c -o osdep/radiotap/radiotap.o osdep/radiotap/radiotap.c
In file included from osdep/radiotap/radiotap.c:17:
osdep/radiotap/platform.h:6:10: fatal error: 'endian.h' file not found
#include <endian.h>
^
1 error generated.
make[1]: *** [osdep/radiotap/radiotap.o] Error 1
make: *** [all] Error 2
$ gmake
gmake -C src all
gmake[1]: Entering directory '/Users/silent/Desktop/aircr-1.2-rc1/src'
gcc -g -W -Wall -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=0 -Iinclude -c -o osdep/radiotap/radiotap.o osdep/radiotap/radiotap.c
In file included from osdep/radiotap/radiotap.c:17:
osdep/radiotap/platform.h:6:10: fatal error: 'endian.h' file not found
#include <endian.h>
^
1 error generated.
<builtin>: recipe for target 'osdep/radiotap/radiotap.o' failed
gmake[1]: *** [osdep/radiotap/radiotap.o] Error 1
gmake[1]: Leaving directory '/Users/silent/Desktop/aircr-1.2-rc1/src'
Makefile:25: recipe for target 'all' failed
gmake: *** [all] Error 2
根据网上的一些表格建议检查这个位置的文件~/usr/include/machine但是没有说如果找到了怎么办!没有其他任何帮助。然后,我找到了这个http://www.opensource.apple.com/source/CarbonHeaders/CarbonHeaders-18.1/Endian.h
silent:~/usr/include/machine
$ ls
_limits.h _types.h fasttrap_isa.h profile.h vmparam.h
_mcontext.h byte_order.h limits.h signal.h
_param.h `endian.h` param.h types.h
我得到错误的文件已经存在!任何帮助,将不胜感激。谢谢。
PS:我是新手,不知道上面这个链接是什么意思:(!
【问题讨论】:
-
您是否尝试将 endian.h 复制并粘贴到 /usr/include 中?这个答案在这里stackoverflow.com/questions/20813028/…
-
这是我访问该链接的地方,但我还没有尝试过,现在就去做,看看会发生什么。
-
@user3097840,我因为缺少链接而出现更多错误,所以我把它放回去了,错误通过重新启动解决。现在它得到
Undefined symbols for architecture x86_64: -
添加定义 here 并将 -D_DARWIN_SOURCE 添加到 CFLAGS 为我解决了这个问题。