Для проекта, над которым я работаю, я пишу мини -стандартную замену библиотеки. Для этого я сейчас пытаюсь реализовать исключения. Итак, я написал следующий минимальный код < /p>
int memory[4];
void* __cxa_allocate_exception(long unsigned int thrown_size) throw()
{
return memory;
}
void __cxa_free_exception(void * thrown_exception) throw()
{
}
void __cxa_throw(void* thrown_exception, void * tinfo, void (*dest)(void*))
{
while(1){};
}
extern "C" void _start()
{
throw 2;
}
< /code>
Однако при составлении этого с -nostdlib я получаю следующую ошибку < /p>
undefined reference to `typeinfo for int'
< /code>
Одна из самых больших вещей, выталкивающей меня здесь, это то, что является «typeinfo для int» ??? Это не имя функции, переменная и т. Д., Поскольку в ней есть места. Проверка вывода компилятора в Godbolt показывает следующее < /p>
mov esi, OFFSET FLAT:typeinfo for int
< /code>
Так что я полностью потерян в отношении того, что на самом деле есть! < /p>
Кроме Кажется, не работает для меня. Я поместил вышеупомянутый код в Godbolt, со следующими флагами компилятора < /p>
-nostdlib -frtti -static-libstdc++
< /code>
Однако я все еще получаю такую же ошибку, и я не уверен, почему. Для справки, вот код на Godbolt, показывающий указанную ошибку.
Подробнее здесь: https://stackoverflow.com/questions/794 ... without-th
C ++ неопределенная ссылка на `typeinfo для int 'при броске исключения без стандартной библиотеки ⇐ C++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как преобразовать список[int, int, int] в кортеж[int, int, int], а не в кортеж[int, ...]
Anonymous » » в форуме Python - 0 Ответы
- 290 Просмотры
-
Последнее сообщение Anonymous
-