Я пытаюсь выполнить код моделирования Ubuntu 16. редактирование равняется 16 не 14
Когда я работаю, делают все, что я получаю следующую ошибку:
DIR bin exists
(cd src/gravity; make compile)
make[1]: Entering directory '/home/ubuntu/athena4.2/src/gravity'
../../Makeoptions:99: *** missing separator. Stop.
make[1]: Leaving directory '/home/ubuntu/athena4.2/src/gravity'
Makefile:45: recipe for target 'compile' failed
make: *** [compile] Error 2
Таким образом, я исследовал посредством многих обменов стека. То, что я нашел, - то, что обычно эта ошибка происходит из-за наличия своего рода проблемы между использованием вкладок по сравнению с пробелами.
Действительно, когда я смотрю на 99-ю строку Makeoptions, я нахожу пробелы:
...
41 #------------------- compiler/library definitions ----------------------------
42 # select using MACHINE=<name> in command line. For example
43 # ophir> make all MACHINE=ophir
44 # New machines can be added to ifeq blocks below.
45
...
83 ifeq ($(MACHINE),zenith)
84 CC = mpicc
85 LDR = mpicc
86 OPT = -O3
87 MPIINC = -I/opt/mpich2/intel/include
88 MPILIB = -L/opt/mpich2/intel/lib -lmpich
89 FFTWLIB = -L/usr/local/fftw3 -lfftw3
90 FFTWINC = -I/usr/local/fftw3
91 else
92 ifeq ($(MACHINE),macosx)
93 CC = gcc
94 LDR = gcc
95 OPT = -O3
96 FFTWLIB = -L/opt/local/lib -lfftw3
97 FFTWINC = -I/opt/local/include
98 else
99 abort Unsupported MACHINE=$(MACHINE)
100 endif
...
Теперь, я попытался использовать вкладку вместо этого и получаю другую ошибку:
DIR bin exists
(cd src/gravity; make compile)
make[1]: Entering directory '/home/ubuntu/athena4.2/src/gravity'
../../Makeoptions:99: *** recipe commences before first target. Stop.
make[1]: Leaving directory '/home/ubuntu/athena4.2/src/gravity'
Makefile:45: recipe for target 'compile' failed
make: *** [compile] Error 2
Однако... Я думаю, что это не может быть РЕАЛЬНОЙ проблемой.
Если Вы замечаете от эксперта файла Makeoptions, существует несколько опций машины (только два, что я показал). То, что я задаюсь вопросом, возможно, моя машина не поддерживается? так как Makeoptions приземляется на строку 99?
Таким образом возможно, я должен добавить ifeq для своей машины человечности?
Я могу выполнить это на Mac.
Спасибо за любую справку :)
****************************** Обновленный *******************************
Благодаря heynnema кажется довольно очевидным, что теперь я должен добавить новую машину к ifeq блоку.
Как я определяю??имя?? Я должен использовать так, чтобы:
ifeq ($ (МАШИНА)??имя??)
возвращает true?
Я попробовал??имя?? = человечность
И это возвращает ту же ошибку, что это дает мне неподдерживаемую машину.
Вопрос о Meta это становится новым вопросом? Вопрос о Meta
В терминале:
grep -i 'ifeq ($(MACHINE)' Makeoptions
Это даст Вам список поддерживаемых машин. Если Вы видите, что Ваша машина вводит в этом списке, то, в терминале:
make all MACHINE=the_name_of_a_supported_machine
, Если Вы не находите свой тип машины в списке, затем Вы находитесь на неподдерживаемой машине.