C ++ неопределенная ссылка на `typeinfo для int 'при броске исключения без стандартной библиотекиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 C ++ неопределенная ссылка на `typeinfo для int 'при броске исключения без стандартной библиотеки

Сообщение Anonymous »

Для проекта, над которым я работаю, я пишу мини -стандартную замену библиотеки. Для этого я сейчас пытаюсь реализовать исключения. Итак, я написал следующий минимальный код < /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
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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