On 12/03/2010 11:40, Robin Becker wrote:
........

I assume I can get those from a working Python amd64 install and stuff
on one of the compiler paths somehow.


Not sure if this is a bug; I dug around a bit and find that because of the cross compilation distutils is supposed to add an extra library path with the name PCbuild\AMD64 when doing x86-->amd64 cross builds.

I tried copying the 2.6.4 amd64 libs/dlls etc etc into c:\python26\PCbuild\AMD64 and reran my cross build

c:\python26\python setup.py build --plat-name=win-amd64

however, that still gives linker import errors.

Looked in the output I see this

C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\x86_amd64\link.exe /DLL 
/nologo /INCREMENTAL:NO /LIBPATH:C:\python26
\libs /LIBPATH:C:\python26\PCbuild\amd64 /EXPORT:init_rl_accel 
build\temp.win-amd64-2.6\Release\_rl_accel.obj /OUT:build
\lib.win-amd64-2.6\_rl_accel.pyd 
/IMPLIB:build\temp.win-amd64-2.6\Release\_rl_accel.lib 
/MANIFESTFILE:build\temp.win-amd
64-2.6\Release\_rl_accel.pyd.manifest
   Creating library build\temp.win-amd64-2.6\Release\_rl_accel.lib and object 
build\temp.win-amd64-2.6\Release\_rl_accel
.exp
_rl_accel.obj : error LNK2019: unresolved external symbol __imp_PyNumber_Int 
referenced in function _parseSequenceInt
_rl_accel.obj : error LNK2019: unresolved external symbol 
__imp_PySequence_GetItem referenced in function _parseSequence


that looks wrong because I'm using 32 bit python to do the build and

/LIBPATH:C:\python26\libs /LIBPATH:C:\python26\PCbuild\amd64

means that the 32 bit libraries are first. Running the linker command by itself (without the 32bit libs in the command) works fine ie

C:\ux\PydBuilder\rl_addons\rl_accel>"C:\Program Files\Microsoft Visual Studio 
9.0\VC\BIN\x86_amd64\link.exe" /DLL /nolog
o /INCREMENTAL:NO /LIBPATH:C:\python26\PCbuild\amd64 /EXPORT:init_rl_accel 
build\temp.win-amd64-2.6\Release\_rl_accel.ob
j /OUT:build\lib.win-amd64-2.6\_rl_accel.pyd 
/IMPLIB:build\temp.win-amd64-2.6\Release\_rl_accel.lib /MANIFESTFILE:build\
temp.win-amd64-2.6\Release\_rl_accel.pyd.manifest
   Creating library build\temp.win-amd64-2.6\Release\_rl_accel.lib and object 
build\temp.win-amd64-2.6\Release\_rl_accel
.exp

seems to work fine and produce a pyd in build\lib.win-amd64-2.6
--
Robin Becker
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to