2013-09-24 2 views
3

Я разочарован, в конце концов, днями экспериментов с Boost.Python, но ничего не добился.Как скрестить Python и C++

Загружаю и устанавливаю и запускаю bjam и т. Д. В соответствии с инструкциями. Дальнейшее развитие, безусловно, будет рассмотрено, но теперь я просто хочу начать с чего-то простого. Тем не менее, библиотека просто не может даже построить простой пример приветствия ... VS2012 продолжает выскакивать некоторые ошибки, такие как error LNK2001: unresolved external symbol __imp___Py_NoneStruct.

В любом случае, я хочу написать некоторые фундаментальные функции (такие как add, multiply и т. Д.) В C++, а затем вызвать их из сценария Python.

Извините, что я задал очень простой вопрос. Может ли кто-нибудь показать мне простой пример? Я думаю, что код в порядке у меня, the essence is how do you link and include the library in you project, and how do you setup the project properties.

Я был бы очень признателен, если кто-то может научить меня. Благодарю. :)

==============================

EDIT:

Я отправил что-то подобное раньше. Вот ссылка: How to solve __imp___Py_NoneStruct Error in Boost.Python?

Я разместил все свои ссылки и включая операции там.

Большое спасибо. :)

+0

Какую строительную среду вы используете? – mike

+0

просто свяжите библиотеку python –

+0

@mike Спасибо за ваш ответ. Я использую Windows 7, Microsoft Visual Studio 2012 Express Version, Python 2.7, Boost 1.54. :) – ChangeMyName

ответ

0

Вы уверены, что вы связались со всеми библиотеками в правильной версии?

Boost.Python требует скомпилированной библиотеки из boost и ссылки на правильную библиотеку времени исполнения python. Если вы компилируете в режиме отладки, все связанные библиотеки также должны быть отладочной версией.

Альтернативам повышения будет SWIG или если у вас есть C-совместимый интерфейс ctypes или cffi.

+0

Я не уверен, что я сделал правильно. Я задал вопрос по адресу http://stackoverflow.com/questions/18963712/how-to-solve-imp-py-nonestruct-error-in-boost-python/18965627?noredirect=1#18965627, и я положил все мои связи. Можете ли вы посмотреть? Большое спасибо. :) – ChangeMyName

+0

@NewLong: я увидел другую тему и увидел, что вы упомянули, что столкнулись с проблемой 'error LNK1104: не могу открыть файл 'python27_d.lib''. Вы решили проблему? если нет, это первое, что вам нужно. Предлагаемое решение в вашем другом правильном правиле. – Abhijit

+0

@ Abhijit Нет, это еще один кошмар, преследующий меня. Вы имеете в виду, что правильный ответ включает python.h? – ChangeMyName

0

Существует встроенная библиотека python, которая называется ctypes. In here you can find some some examples

+0

Благодарим вас за ответ. Я думаю, что вызов из Python не является моим первым приоритетом. Сначала я хотел бы приветствовать мировой пример из http://www.boost.org/doc/libs/1_54_0/libs/python/doc/tutorial/doc/html/index.html#python.quickstart, а затем узнать больше о библиотеке. – ChangeMyName

Смежные вопросы