Я использовал boost.python
, чтобы обернуть приложение c ++, чтобы в итоге иметь возможность звонить из python.Я сделал, как следует из документации, но я только что достиг стадии, на которой мне нужно построить решение на стороне cpp.Когда я собираюсь построить решение, я получаю около 200 ошибок, в которых говорится, что unresolved external symbol _imp_PyBytes
и т. Д.
Из того, что я могу сказать, все неразрешенные внешние символы имеют py
в названии.Это заставляет меня предположить, что существует проблема с питоном во время или после части сборки boost?
Я пробовал несколько различных подходов к решению этой проблемы - от добавления библиотеки python непосредственно в каталоги include до переписывания пользовательской конфигурации.jam для восстановления boost.build
Вот некоторые из ошибок:
Ошибка LNK2019: неразрешенный внешний символ __imp_PyBytes_AsString, указанный в функции "public: static class std :: basic_string, class std:: allocator> __cdecl boost :: python :: converter :: `анонимное пространство имен ':: string_rvalue_from_python :: extract (struct _object *)" (? extract @ string_rvalue_from_python @? A0xea0695f0 @ converter @ python @ boost @@ SA? AV?$ basic_string @ DU? $ char_traits @ D @ std @@ V? $ allocator @ D @ 2 @@ std @@ PEAU_object @@@ Z) пример C: \ Users \ frborden \ source \ repos \ example \ libboost_python37-vc142-mt-gd-x64-1_71.lib (builtin_converters.obj)
У меня около 200 ошибок, похожих на описанную выше.Большинство ошибок связаны с libboost_python37-vc142-mt-gd-x64-1_71.lib
Любая помощь будет высоко ценится.Надеюсь, я предоставил достаточно информации, но я с удовольствием отвечу, чтобы дать больше.
Я использую Python 3.7 и Visual Studio 2019 версии 16.2.3