On Sep 20, 9:45 am, [EMAIL PROTECTED] wrote: > Hi all, > > So I'm working on a C++ application that will eventually embed or > extend Python using Boost.Python, but I first need to get Python > compiled correctly for my platform. I've got a Windows Vista 64-bit > machine with a Core 2 processor, and I'm compiling with a VC8. > > I downloaded the Python 2.5.1 source from python.org, and I opened the > Visual Studio solution file that was in the PCbuild8 directory. I > created a new x64 platform and managed to successfully compile the > 'pythoncore' and 'python' projects (both in Debug and Release > configurations), resulting in working executables. (Aside: When > launched, the python console says "Python 2.5.1 [MSC v.1400 64 bit > (AMD64)] on win32" up top. Does that seem right?) > > So, this program I'm writing with Boost.Python (that worked correctly > on x86 with home-built libraries) won't compile with these x64 > libraries. I keep getting 'unresolved external symbols.' But, I'm > certain I'm linking in the library correctly. Here's a snippet from > the output (with /verbose:lib) when compiling: > > 1>Searching libraries > 1> <snip> > 1> Searching ..\..\..\3rdParty\boost_1_34_0\lib_x64\libboost_python- > vc80-mt-gy-1_34.lib: > 1> <snip> > 1> Searching ..\..\..\3rdParty\Python25\libs_x64\python25_d.lib: > 1>Finished searching libraries > 1>py_dyn_test.obj : error LNK2001: unresolved external symbol > _Py_NoneStruct > 1>vector_py.obj : error LNK2001: unresolved external symbol > _Py_NoneStruct > 1>volume_py.obj : error LNK2001: unresolved external symbol > _Py_NoneStruct > 1>py_dyn_test.obj : error LNK2001: unresolved external symbol > _Py_RefTotal > 1>vector_py.obj : error LNK2001: unresolved external symbol > _Py_RefTotal > 1>volume_py.obj : error LNK2001: unresolved external symbol > _Py_RefTotal > 1>volume_py.obj : error LNK2001: unresolved external symbol > PyExc_IndexError > > If I switch to the Release configuration, I see fewer errors: > > 1>py_dyn_test.obj : error LNK2001: unresolved external symbol > _Py_NoneStruct > 1>volume_py.obj : error LNK2001: unresolved external symbol > PyExc_IndexError > > Note that none of my own code is Debug-specific. Also, the code in my > files is correct, because (as stated above), it worked fine for x86. > > Though I don't know how useful it is, I did open the python libraries > in wordpad, and though most of the file wasn't legible, I did find > strings "Py_NoneStruct," "Py_RefTotal," and "PyExc_IndexError." > > I suspect that I set up my "x64" platform configuration incorrectly, > or missed something. It's basically the same as the Win32 > configuration, except with the /MACHINE:X64 flag instead of / > MACHINE:X86. One of the things I'm noticing just now, as I post this, > is that the preprocessor flag "WIN32" is still defined in the x64 > configuration. Maybe if I change that to "WIN64," I'll have better > luck. > > Any advice you have on what the "correct" way to do this is would be > appreciated. > > -Dan
I've tried re-building my libraries from the latest revision (58225), using the solution in the PCbuild8 folder. I had no problems getting the python25[_d].lib to compile, but I still get these symbol errors when I try to link with the library. -Dan -- http://mail.python.org/mailman/listinfo/python-list