Как использовать '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- > Дополнительные каталоги библиотек"