Heute morgen habe ich Python 3.6 installiert, habe meine b2 config kompiliert die Boost-Lib und habe beide Varianten von libboost_python3...
in der lib Pfad. Dann mit einem einfachen:VS LINK kann die Datei 'boost_python ...' nicht öffnen libboost_python3-vc140-mt-gd-1_65
#include "stdafx.h"
#include <boost/python.hpp>
char const* greet()
{
return "hello, world";
}
BOOST_PYTHON_MODULE(hello_ext)
{
using namespace boost::python;
def("greet", greet);
}
ich einen Linker Fehler:
LINK : fatal error LNK1104: cannot open file 'boost_python-vc140-mt-gd-1_63.lib'
ich für etwas wie eine Fahne wie USING_BOOST_PYTHON3
gesucht habe, aber alles, was ich lese, sagt, dass es automatisch sein sollte. Dieser Boost sollte die richtige Lib enthalten, je nachdem, was ich gebaut habe.
This guy Hatte das gleiche Problem, aber bekam nie eine Antwort. Das war so nah wie möglich an den Links in "Ähnliche Fragen" auf der rechten Seite. Aber ich kann nicht sehen, wie VS Teil davon ist, da Boost die Bibliotheken auswählen wird.
Update: ich gerade gefunden:
#if PY_MAJOR_VERSION == 2
# define BOOST_LIB_NAME boost_python
#elif PY_MAJOR_VERSION == 3
# define BOOST_LIB_NAME boost_python3
#endif
So, jetzt sieht es so aus, warum ist meine Hauptversion 2 statt 3? Und selbst wenn ich:
#define PY_MAJOR_VERSION 3
Direkt an der Spitze meines stdafx.h
es verbindet immer noch mit dem Python 2 lib. !?
Noch ein weiteres Update: So früh, und ich habe nicht Python 2.7 ‚installiert‘, habe ich die zusätzliche Bibliotheken zu C:\cpp\Python27\libs
gesetzt hatte ich es nur auf C:\cpp\Python36_3\libs
gesetzt und jetzt erhalte ich:
LINK : fatal error LNK1104: cannot open file 'python27.lib'
macht Sinn, da Schub versucht, statt 3.x