尝试编译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:我是新手,我不知道上面这个链接在说什么:(!答案 0 :(得分:3)
在OSX和iOS上,您可以这样包含endian.h:
#include <machine/endian.h>
但请注意,这会在Android或Linux上失败,因为他们期望#include <endian.h>
。
您还可以包含sys / types.h,它将在iOS / OSX和Android / Linux上包含正确的endian.h:
#include <sys/types.h>
答案 1 :(得分:1)
你必须告诉c编译器它可以在哪里找到这个文件:
export CFLAGS="$CFLAGS -I~/usr/include/machine"
然后运行make
。
或者,您可以编辑文件Makefile
以在必要时添加-I~/usr/include/machine
部分。