C++: `ошибка: ожидается ',' или '...' перед строковой константой` перед `__FILE__` в `fancy_abort (__FILE__, __LINE__, _C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C++: `ошибка: ожидается ',' или '...' перед строковой константой` перед `__FILE__` в `fancy_abort (__FILE__, __LINE__, _

Сообщение Anonymous »


Это продолжение попытки скомпилировать нелицензионную GPL-версию кросс-компилятора микроконтроллера Microchip XC32 g++ XC32 v4.35 из исходного кода.

См. мои вопросы и ответы здесь, а также мой репозиторий здесь: https://github.com/ElectricRCAircraftGu ... 2_Compiler.

Обратите внимание, что это прекрасно работает в Linux Ubuntu 22.04 с gcc --version gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0. Однако при компиляции в Windows в среде MSYS2 UCRT64 (настроенной в соответствии с моими инструкциями здесь) с помощью gcc --version gcc.exe (Rev2, создано проектом MSYS2) 13.2. 0, теперь я получаю следующую ошибку в gcc/gcc/system.h:

./../../pic32m-source/gcc/gcc/prefix.c ../../../pic32m-source/gcc/gcc/system.h:737:30: ошибка: ожидаемый идентификатор перед строковой константой 737 | #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) | ^~~~~~~~ ../../../pic32m-source/gcc/gcc/system.h:737:30: ошибка: ожидается ',' или '...' перед строковой константой ../../../pic32m-source/gcc/gcc/system.h:737:30: ошибка: ожидаемый идентификатор перед строковой константой 737 | #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) | ^~~~~~~~ ../../../pic32m-source/gcc/gcc/system.h:737:30: ошибка: ожидается ',' или '...' перед строковой константой make[1]: *** [Makefile:1112: prefix.o] Ошибка 1 make[1]: выход из каталога «/c/Users/gabriel/GS/dev/Microchip_XC32_Compiler/xc32-v4.35-src/pic32m-build/gcc/gcc» make: *** [Makefile:4290: all-gcc] Ошибка 2 Вот файл system.h, который я использую, в строке 737:

/* Переопределить прерывание, чтобы сообщить о внутренней ошибке без дампа памяти, и сообщая о местоположении ошибки в исходном файле. */ extern voidancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN ATTRIBUTE_COLD; #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) Это определение abort() вызывается, например, внутри класса шаблона C++ в строке 460 fibonacci_heap.h, здесь:

шаблон В* fibonacci_heap::delete_node (fibonacci_node *node, bool Release) { V *ret = node->m_data; /* Чтобы выполнить удаление, мы просто присваиваем ему ключ min и извлекаем его. */ replace_key (узел, m_global_min_key); если (узел != m_min) { fprintf (stderr, «Невозможно установить минимум в куче fib.\n»); прервать (); // ${SRC_DIR}/${GCC_DIR}/gcc/system.h.tmp; mv ${SRC_DIR}/${GCC_DIR}/gcc/system.h.tmp ${SRC_DIR}/${GCC_DIR}/gcc/system.h фи Перевод комментариев с японского на английский:

# # В новой среде mingw произойдет следующая ошибка. # ../../../src/gcc-10.2.0/gcc/system.h:743:30: ошибка: ожидаемый идентификатор перед строковой константой №743 | #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) # В качестве обходного пути удалите ошибочную строку. # abort() ведет себя как реализация, объявленная в stdlib.h. Приведенный выше код просто находит #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) в gcc/system.h и комментирует его как /* #define abort() Fancy_abort (__FILE__, __LINE__, __FUNCTION__) */, тем самым удаляя его.

Просто закомментировать это оскорбительное определение макроса кажется очень хакерским. Я не до конца понимаю последствия этого изменения.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • «ожидаемый неквалифицированный идентификатор перед строковой константой» в программе RichEdit
    Anonymous » » в форуме C++
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Введите подсказку со строковой константой
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • CS1026: ) Ожидается | CS1002: ; ожидается | CS1513: } ожидается
    Anonymous » » в форуме C#
    0 Ответы
    83 Просмотры
    Последнее сообщение Anonymous
  • React Native File File File File Error Type Ошибка ошибки
    Anonymous » » в форуме Android
    0 Ответы
    54 Просмотры
    Последнее сообщение Anonymous
  • React Native File File File File Error Type Ошибка ошибки
    Anonymous » » в форуме Android
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»