Я пытаюсь (в течение нескольких дней) создавать DLL, сгенерированную из кода на С++, с boost/python, который будет использоваться python. Я студент из Германии и в основном занимаюсь Java до сих пор (я написал несколько базовых файлов OpenGL и gimp filter на С++). Так что извините меня за неправильные ошибки на английском или С++-новиллере. Я имею в виду, что программирование на Java действительно намного удобнее по сравнению с С++. Но достаточно перестрелки.
Ошибка:
LINK : fatal error LNK1104: File "boost_python-vc110-mt-gd-1_53.lib" could not be openend
Мои пресеты:
-using MS Visual Studio 2012 (11.0)
-using boost_1_53_0
-using python2.7 (я слышал, что 3.3 может вызвать некоторые проблемы)
Что я сделал:
Установлен python и добавлен в PATH. Затем был создан новый пустой проект в VS и файл класса "Test.cpp" со следующим содержимым, как описано на странице руководства по ускорению:
char const* greet()
{
return "hello world";
}
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(Test)
{
using namespace boost::python
def("greet", greet);
}
Затем появилась новая часть для меня в VS Project Properties:
Свойства конфигурации > Общие > Конфигурация > Динамическая библиотека (.dll)
C/С++ > Общие > Добавочные каталогизаций > C: [..]\boost_1_53_0
Linker > General > Дополнительные каталоги библиотек > C: [..] boost_1_53_0\stage\lib
Из ошибки я предполагаю, что я сделал что-то не так с Linker или Include. Я также изменил Linker > General > Additional Library Directories для boost_1_53_0\libs, потому что я не был уверен, но произошла такая же ошибка. И да, я правильно включил python. Я также не уверен, что мне нужно поставить что-то еще рядом с python в Linker > Input for boost.
Затем я создаю boost с помощью bjam без параметров, кроме msvc-11.0, чтобы иметь все, что мне нужно (хотя я читал, что boost/python не нуждается в дополнительной сборке) и по-прежнему получает ту же ошибку. Кто-нибудь может мне помочь? Я хотел бы поэтапно описать, что делать. Я действительно отчаиваюсь от этого.
Btw: У меня была такая же ошибка, как у этого парня за несколько дней до Ошибка Linker LNK1104 с 'libboost_filesystem-vc100-mt-s-1_49.lib', тогда перестала работать над ним, и, когда я снова начал, у меня появилась новая ошибка (я не могу сказать, как это произошло).