неопределенная ссылка на __std_terminate - PullRequest
0 голосов
/ 06 декабря 2018

Я создаю библиотеку Win32 C ++ для связи с другим кодом с помощью MSVC.Сборка настроена CMake, и я создаю .lib, который был скомпилирован во время выполнения / MT.BUILD_SHARED_LIBS выключен.

Когда я связываю эту библиотеку с внешней программой на C (хорошо, полное раскрытие информации, это не факт C, это диалект BASIC, который испускает код C, но я отступаю), я получаю кратные числа следующих ошибок компоновщика:

undefined reference to `__std_terminate'
undefined reference to `_Smtx_lock_exclusive'
undefined reference to `??3@YAXPAXI@Z'
undefined reference to `@__security_check_cookie@4'
undefined reference to `__CxxFrameHandler3'

Все это наводит меня на мысль, что на самом деле что-то не было статически связано, когда я собирал библиотеку.

Кто-нибудь знает, что мне не хватает?

1 Ответ

0 голосов
/ 06 декабря 2018

Во-первых, этот .lib содержит только ваш код.Затем при связывании вашей C-программы связываются среда выполнения .lib и C, но в коде все еще отсутствуют символы из среды выполнения C ++.В качестве решения, свяжите вашу C-программу как C ++ или явно извлеките во время выполнения C ++.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...