Конфликт определений типов «long int t4_i32» и «long t4_i32» и «int t4_i32»C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Конфликт определений типов «long int t4_i32» и «long t4_i32» и «int t4_i32»

Сообщение Anonymous »

Я пытаюсь собрать базу данных Metakit из исходного кода, но получаю такое сообщение об ошибке:

Код: Выделить всё

g++ -c -g -O2  -fPIC -DUSE_TCL_STUBS -I../unix/../include -I../unix/../src -I. ../unix/../src/column.cpp
In file included from ../unix/../src/header.h:191,
from ../unix/../src/column.cpp:9:
../unix/../include/mk4.h:205:14: error: conflicting declaration ‘typedef long int t4_i32’
205 | typedef long t4_i32; // if longs aren't 64b, then they are 32b
|              ^~~~~~
../unix/../src/header.h:143:13: note: previous declaration as ‘typedef int t4_i32’
143 | typedef int t4_i32; // longs are 64b, so int must be 32b
|             ^~~~~~
make: *** [Makefile:207: column.o] Fehler 1
Поскольку определения типов являются довольно старой функцией C/C++, мне хотелось бы знать, почему имена long, int и long int конфликтуют друг с другом, если они не совпадают. Или определение типа long int — это то, что вы больше не можете делать в современной версии C++? Теперь у меня версия 14.2.0.
Обратите внимание, что я не ищу помощь по отладке (в любом случае это не мой код), но хочу знать, как могут возникать такие ошибки (около 7 лет назад мне удалось собрать программу, но в 32-битной системе с g++ 7.5.0).

Подробнее здесь: https://stackoverflow.com/questions/798 ... int-t4-i32
Ответить

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

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

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

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

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