Как использовать 'boost_python-vc110-mt-gd-1_54.lib' в C++?
Я пытаюсь использовать BoostPython, чтобы написать программу на C++.
Мои настройки:
а. Консольное приложение Win32.
б. Свойство->C/C++-> Общие-> Дополнительные каталоги включения->C:\Python27\include;C:\Program Files\boost\boost_1_54_0;
с. Property->Linker->General-> Дополнительные указания библиотеки->C:\Python27\libs;
д. Microsoft Visual Studio 2012 Express версия + 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 для 'boost_python-vc110-mt-gd-1_54.lib', но ничего не нашел,
Я искал похожие посты, в отличие от моей проблемы, пропущенный файл lib имел префикс 'lib'. С другой стороны, я обнаружил, что этот пост очень похож на мой. Но я обнаружил, что ОП совершил ошибку, когда он / она решил свою проблему. То есть Boost совместим с python 2.2 и его более новыми версиями. А остальная часть его ответа мне не поможет.
Я полагаю, что это может быть связано с тем, что я либо сделал что-то не так во время установки, либо я ошибся, когда связал библиотеки с моим приложением.
Кто-нибудь может мне помочь из этого? Подробное решение будет отличным. Большое спасибо.:)
================================================== ============
РЕДАКТИРОВАТЬ:
Я переустановил Boost с готовым двоичным файлом. Теперь я могу ссылаться на файл lib, который запрашивал компилятор. Однако возникают новые проблемы. Теперь у меня есть две новые ошибки:
ошибка LNK2001: неразрешенный внешний символ __imp___Py_NoneStruct
ошибка LNK1120: 1 неразрешенная внешность
Когда я закомментирую строку #include <boost/python.hpp>
вышеуказанные ошибки исчезли.
Я действительно не могу понять причину. Кто-нибудь может мне с этим помочь? Большое спасибо.
2 ответа
Я обнаружил, что ошибка возникает из-за того, что библиотека Boost не была правильно установлена на моем компьютере. На самом деле, ключ bjam, и он должен быть запущен для сборки всех этих необходимых библиотек.
Я бы предложил всем, кто сталкивался с этой проблемой, если вы не знаете, как правильно запустить bjam, перейдите к поиску предварительно скомпилированного двоичного файла Boost. Это может сэкономить вам много времени.
Вы добавили папку C:\Python27\libs в настройки компоновщика, но в ней нет файлов надстройки.
Вам нужно запустить буст bjam
генерировать файлы библиотеки повышения. Многое только в заголовке, но есть некоторые библиотеки, которые вам нужно будет собрать.
Когда вы это сделаете, вам нужно добавить каталог в
"Property->Linker->General-> Дополнительные каталоги библиотек"