我想从 github 编译一个游戏。我按照这个指南操作http://powdertoy.co.uk/Wiki/W/Compiling_for_Linux.html当我到达最后需要使用 make 命令进行编译时,出现以下错误
pavle@Pavle:~/TPT$ make powder-sse
gcc -c -w -std=c99 -D_POSIX_C_SOURCE=200112L -DLUACONSOLE -DGRAVFFT -Iincludes/ -D_GNU_SOURCE -m32 -DLIN32 -O3 -ffast-math -ftree-vectorize -funsafe-math-optimizations -march=native -DX86 -DX86_SSE -o build/obj/air.powder-sse.o src/air.c
In file included from /usr/include/math.h:28:0,
from src/air.c:18:
/usr/include/features.h:324:26: fatal error: bits/predefs.h: No such file or directory
compilation terminated.
make: *** [build/obj/air.powder-sse.o] Error 1
pavle@Pavle:~/TPT$
我做错了什么,我尝试使用 sse2、sse3、64bit 和 opengl(在 make 文件中查找)但没有任何效果。请帮忙
答案1
您使用的是 64 位系统吗?尝试安装gcc-multilib
sudo apt-get install gcc-multilib
然后make
再次。
答案2
有一两件事需要注意:在 64 位系统上,您可能需要稍微不同的库,正如另一个答案所提到的,所以我应该确保您拥有所有依赖项(如评论中所述)。
特别是,您似乎缺少libfftw3-dev
提供“空气”文件和标题的关键,因此您收到此错误:
make: *** [build/obj/air.powder-sse.o] Error 1
此外,您必须使用您的 CPU 可以使用的 SSE 版本 - 我刚刚通过使用 成功编译了它make powder-sse2
,然后使用 运行它./powder-sse2
。但是,默认情况下,只需键入make
就会创建一个 SSE3 版本,该版本将无法在没有该扩展的 CPU 上运行。
所以我应该检查你的依赖关系,然后运行make clean
并再次尝试编译,并使用适合你的 CPU 的 SSE 值。