Я хочу собрать игру из github. Я следовал этому руководству http://powdertoy.co.uk/Wiki/W/Compiling_for_Linux.html , и когда я добираюсь до конца, когда мне нужно использовать команду make для компиляции, я получаю следующую ошибку [ 112]
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 nad opengl (посмотрел это в файле make), ничего не получалось. Помогите пожалуйста
Вы в 64-битной системе? Попробуйте установить gcc-multilib
sudo apt-get install gcc-multilib
и make
снова.
Следует отметить одну или две вещи: в 64-битных системах вам могут понадобиться немного другие библиотеки, как упоминает другой ответ, поэтому я должен убедиться, что у вас есть все зависимости (как отмечено в комментариях).
В частности, вы, похоже, упускаете критический libfftw3-dev
, который предоставляет «воздушные» файлы и заголовки, и поэтому вы получаете эту ошибку:
make: *** [build/obj/air.powder-sse.o] Error 1
Также вы должны использовать версию SSE, который может использовать ваш процессор - я просто успешно скомпилировал его, используя make powder-sse2
, а затем запустил его с ./powder-sse2
. Однако по умолчанию, просто набрав make
, вы создадите версию SSE3, которая не будет работать на процессорах без этого расширения.
Поэтому я должен проверить ваши зависимости, а затем запустить make clean
и снова попробовать скомпилировать с подходящим значением SSE для вашего ЦП.