: 0: 1: ошибка: имена макросов должны быть идентификаторами ........ Решение для этой ошибки? - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь связать ssd1963 LCD с Raspberry Pi3 модель B + , следуя этому руководству на Github.

https://github.com/matusnovak/rpi-tftgl

При попытке установить makefile для rpi-tftgl в каталог rpi-tftgl/tftgl я получаю эту ошибку, когда запускаю команду make.Вот ссылка на мое захваченное изображение окна терминала pi, показывающее точную ошибку:

enter image description here

Ниже приведена ошибка, которую я получил при выполнении makeкоманда:

gcc -c src/tftgl.c -o src/tftgl.o -I/opt/vc/include -I. -Iinclude -D:0 -O3
<command-line>:0:1: error: macro names must be identifiers
Makefile:18: recipe for target 'src/tftgl.o' failed
make: *** [src/tftgl.o] Error 1

Могу ли я получить решение для этого или любой рекомендации для любого другого источника или ссылок, по которым я могу перейти на интерфейс ssd1963 LCD с сенсорным включением с Raspberrypi3.Добавляя make-файл,

 CC=gcc
 AR=ar
 DISPLAY?=ERROR
 CFLAGS=-I/opt/vc/include -I. -Iinclude -D$(DISPLAY) -O3
 prefix?=/usr/local

 .PHONY: default all clean

  default: tftgl
  all: default

  tftgl: libtftgl.a

  libtftgl.a: src/tftgl.o
     $(AR) rcs libtftgl.a src/tftgl.o

  src/tftgl.o: src/tftgl.c src/tftgl_ssd1963.h src/tftgl_ads7843.h
     $(CC) -c src/tftgl.c -o src/tftgl.o $(CFLAGS)

  install: tftgl
     install -m 0755 libtftgl.a $(prefix)/lib
     install -m 0644 include/tftgl.h $(prefix)/include

  clean:
     -rm -f src/*.o
     -rm -f libtftgl.a

Я предоставляю здесь ссылку на tftgl.c, https://github.com/matusnovak/rpi-tftgl/blob/master/tftgl/src/tftgl.c

1 Ответ

0 голосов
/ 08 февраля 2019

(Автор) Makefile не принимает во внимание, что переменная окружения DISPLAY может быть определена для чего-то другого, кроме определения макроса.Так как не задокументировано, нужно ли и как вам это определять, лучшее, что вы можете сделать, это make с переменной unset:

(unset DISPLAY; make)

Если вы предпочитаете изменить make-файл, просто удалите? из DISPLAY?=ERROR, оставив DISPLAY=ERROR.

...