Я пишу проект в VS 2017, который использует Windows 32-битную версию SWI Prolog. Я использую интерфейс SWI Prolog C ++ в другом проекте, который компилируется с MSV C, используя заголовок C ++ и библиотеку .a stati c для go с ним.
Я прекрасно все связал, чтобы проекты нормально работали в режиме локального отладчика для VS. Однако, когда я пытаюсь использовать скомпилированный .exe, я получаю ошибку компоновщика:
Точка входа в процедуру __divmoddi4 не может быть расположена в динамической c библиотеке ссылок C: \ ProgrammingLanguages \ swipl-32 \ bin \ libswipl.dll
После некоторого поиска в Google я увидел, что эта функция уникальна для более новых версий G CC, и имеет смысл использовать ее в библиотеке Prolog SWI, учитывая он был скомпилирован с использованием MinGW.
Проблема в том, что мне нужно, чтобы этот исполняемый файл работал сам по себе, но я понятия не имею, как заставить проект устранить эту ошибку компоновщика без прямого переключения на G CC , Есть ли способ, как я могу решить эту ошибку компоновки, все еще используя MSV C?
Я читал некоторые другие темы об использовании extern "C"
для решения проблемы, но я получаю ошибки компилятора, так как в заголовке есть перегруженные функции Я использую. Если мне не нужно использовать заголовок C для пролога SWI?