Неразрешенный внешний символ __except1. (libcmt.lib)

http2

floppy-диск
Пользователь
Регистрация
20.07.2020
Сообщения
8
Реакции
0
Пробую работать с библиотекой mpack.
Скачал amalgamation package ( Версию, в которой только два файла - mpack.c, mpack.h ), отключил все флаги в mpack.h, связанные с использованием стандартной библиотеки си, порезал мусор.
На выходе получаю "LIBCMT.lib(ftol3.obj) : error LNK2001: неразрешенный внешний символ __except1.".
Что я делаю не так?
 
/NODEFAULTLIB
/SUBSYSTEM:WINDOWS
/ENTRY:main

В настройках проекта отключить всякую хуергу обработки исключений и т.п.

Но скорее всего потом работать не будет твой мпак, но это не точно.
 
/NODEFAULTLIB
/SUBSYSTEM:WINDOWS
/ENTRY:main

В настройках проекта отключить всякую хуергу обработки исключений и т.п.

Но скорее всего потом работать не будет твой мпак, но это не точно.
Это понятно. ЦРТ отвязан, от /NODEFAULTLIB смысла как такового нет - тестировал, летят другие ошибки (связанные с работой с х64 числами, что логично). EP кастомная, собираю в /MT.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Это понятно. ЦРТ отвязан, от /NODEFAULTLIB смысла как такового нет - тестировал, летят другие ошибки (связанные с работой с х64 числами, что логично). EP кастомная, собираю в /MT.
__except1 - очередная хуепроверка. или попробуй крч зайти в свойство проекта -> Комповщик -> ввод -> Доп зависимости и добавить "libcmt.lib"
 
__except1 - очередная хуепроверка. или попробуй крч зайти в свойство проекта -> Комповщик -> ввод -> Доп зависимости и добавить "libcmt.lib"
Очень глупый совет. Если бы мне нужно было статически слинковать CRT, я бы не создавал эту тему.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Могу посоветовать компилировать в Pelles C, в этом компиляторе нет такого идиотизма с црт, как в студии.
Если не подходит, то хз, может этот Mpack юзает где-то исключения.
 
Могу посоветовать компилировать в Pelles C, в этом компиляторе нет такого идиотизма с црт, как в студии.
Если не подходит, то хз, может этот Mpack юзает где-то исключения.
Спасибо, возьму на заметку, если не найду решения проблемы. Исключений не юзает, что очень странно.
 
Исключений не юзает, что очень странно.
Насколько я помню, ftol3.obj это что-то в районе работы с double, там студия "втихаря" генерирует обработку исключений.
В своем проекте при подключении подобной либы-протокола пришлось отказаться от работы с double, функциональность была некритичной. Или можно воспользоваться другим компилятором, как предлагает Quake3
Для получения более подробной информации о проблеме, могу предложить собрать с CRT и символами, чтобы подсмотреть, в каких функциях компилятор подставил "лишние" вызовы. Дальше будет понятнее, что с этим делать.
Если не решится, сбрось минимальный настроенный проект, может кому-то будет не лень посмотреть в свободное время, разгрузиться от своих проблем :)
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Студия любит совать разные вещи со своего црт туда, куда собака х. не сунула. Скажем, пеллес умеет заменить char x[] = {0} , т.е. ZeroMemory, т.е. memset на rep stosb, студия в теории тоже вроде умеет, а на практике ... поиграйтесь сами.
 
__except1

Скорее всего поздно отвечу, но эта залупа похожа на то, что ты не отрубаешь SEH / C++ exceptions?
Отрубай все стекфрейкмы, С++ exceptions отруби, рантайм куки тоже отрубай, короче все что связано с кодо-генерацией

Крайний варик - сделать intrinsic обёртку в твоей приложухе и резолвай эту залупу через хеш(????)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх