Как использовать 'boost_python-vc110-mt-gd-1_54.lib' в С++?

Я пытаюсь использовать BoostPython для написания программы на С++.

Мои настройки:

а. Консольное приложение Win32.

б. Свойство- > C/С++ → Общие- > Дополнительные каталоги Include- > C:\Python27\include; C:\Program Files\boost\boost_1_54_0;

с. Свойство- > Linker- > General- > Дополнительные библиотеки Directions- > C:\Python27\libs;

д. Microsoft Visual Studio 2012 Express Version + Python 27 + Boost 1.54

И мой код выглядит следующим образом:

#include <boost/python.hpp>
using namespace boost::python;

int main( int argc, char ** argv ) 
{
    return 0;
}

Как вы можете видеть, этот код имеет пустую главную функцию. И я получил сообщение об ошибке

ошибка LNK1104: невозможно открыть файл 'boost_python-vc110-mt-gd-1_54.lib'

Я проверил установку boost ('bootstrap.bat' + 'bjam.exe'), и я искал в папке, где установлена ​​ускоренная библиотека для boost_python-vc110-mt-gd-1_54.lib, но ничего не нашел.

Я искал некоторые похожие сообщения, в отличие от моей проблемы, файл lib, который они пропустили, был с префиксом "lib". С другой стороны, я нашел этот пост очень похож на мой. Но я обнаружил, что ОП совершил ошибку, когда он/она решает свою проблему. То есть Boost совместим с python 2.2 и более новыми версиями. И остальная часть его ответа мне не поможет.

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

Может ли кто-нибудь помочь мне в этом? Подробное решение будет отличным. Большое спасибо.:)

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

EDIT:

Я переустановил Boost с предварительно созданным двоичным файлом. Теперь я могу ссылаться на файл lib, на который запросил компилятор. Однако возникают новые проблемы. Теперь у меня две новые ошибки:

ошибка LNK2001: неразрешенный внешний символ __imp ___ Py_NoneStruct

ошибка LNK1120: 1 нерешенные внешние

Когда я прокомментирую строку #include <boost/python.hpp>, вышеуказанные ошибки исчезли.

Я действительно не могу понять причину. Кто-нибудь может мне с этим помочь? Большое спасибо.

Ответы

Ответ 1

Я выяснил, что ошибка возникает из-за неправильной установки библиотеки Boost на моем компьютере. На самом деле ключ - это bjam, и его нужно запустить, чтобы собрать все необходимые библиотеки.

Я предлагаю всем, кто сталкивается с этой проблемой, если вы не знаете, как правильно запустить bjam, перейдите к поиску предварительно созданного двоичного файла Boost. Это может сэкономить вам много времени.

Ответ 2

Вы добавили папку C:\Python27\libs в настройки компоновщика, но у этого нет файлов boost.
Вам нужно запустить boost bjam, чтобы сгенерировать файлы библиотеки boost. Множество boost - только заголовок, но есть некоторые библиотеки, которые вам нужно будет создать.
Когда вы это сделали, вам нужно добавить каталог в

"Property- > Linker- > General- > Дополнительные каталоги библиотек"