Hi everyone I'm stuck at doing this and can't find the problem, maybe someone with more experience then I compiling python can help me out.

I google around and found some old articles, from them the one that seems more accurate is http://www.vrplumber.com/programming/mstoolkit/

of couse I had to difer from that a little so this is what I have install
  • Microsoft Windows Platform SDK Collection for Windows Server 2003 SP1
  • Microsoft Visual Studio 2005 Version 8.0.50727.42  (RTM.050727-4200) thats Microsoft Visual C++ 2005
I have try with either one install
  • Microsoft .NET framework SDK 1.1
  • Microsoft .NET Framework Version 2.0.50727

On the other part I have
  • Python 2.4.2
  • mysql-4.1.18-win32.zip
  • mysqlpython 1.2.0, 1.2.1 and 1.2.1_p2
-----------------------------------------
Changes to the sources
/*if (PyDict_SetItemString(dict, "version_info",
                   PyRun_String(version_info, Py_eval_input,
                       dict, dict)))
        goto error;
    if (PyDict_SetItemString(dict, "__version__",
                   PyString_FromString(__version_
_)))
        goto error;*/
  • I copy over the file my_config.h from the mysql sources (because it's NOT distributed with the installer)
  • and finally I edit site.cfg to this, the rest of the file is not changed.
[compiler]
mysqlroot: C:\mysql
library_dirs: %(mysqlroot)s\lib\opt
include_dirs: %(mysqlroot)s\include
libraries: mysqlclient zlib libcmt wsock32 advapi32
# libcmt msvcrt
#extra_compile_args:
#extra_objects:

  • I started the "Visual Studio 2005 Command Prompt"
  • and setup.py build
  • So far I belive I have compile a working copy of the code but i'm stuck at the linker
Right now my problem is with the linker the values in site.cfg seems to be wrong.

libraries: mysqlclient zlib msvcrt libcmt wsock32 advapi32

libs msvcrt libcmt seems to conflict with eachother and with MSVCR80.dll

I have try using msvcrt and have /NODEFAULTLIB:libcrt

C:\MySQL-python-1.2.1_p2.tar\MySQL-python-1.2.1_p2>"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe" /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\mysql\lib\opt /LIBPATH:c:\python24\libs /LIBPATH:c:\python24\PCBuild mysqlclient.lib zlib.lib msvcrt.lib wsock32.lib advapi32.lib /EXPORT:init_mysql build\temp.win32-2.4\Release\_mysql.obj /OUT:build\lib.win32-2.4\_mysql.pyd /IMPLIB:build\temp.win32-2.4\Release\_mysql.lib /NODEFAULTLIB:libcrt
LIBCMT.lib(crtheap.obj) : error LNK2005: __malloc_crt already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __amsg_exit already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: __initterm_e already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(crt0dat.obj) : error LNK2005: _exit already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(fflush.obj) : error LNK2005: _fflush already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(dosmap.obj) : error LNK2005: __errno already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(calloc.obj) : error LNK2005: _calloc already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(realloc.obj) : error LNK2005: _realloc already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(crt0init.obj ) : error LNK2005: ___xi_a already defined in msvcrt.lib(cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xi_z already defined in msvcrt.lib (cinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_a already defined in msvcrt.libcinitexe.obj)
LIBCMT.lib(crt0init.obj) : error LNK2005: ___xc_z already defined in msvcrt.lib(cinitexe.obj)
LIBCMT.lib(winxfltr.obj) : error LNK2005: ___CppXcptFilter already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(winsig.obj) : error LNK2005: _signal already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(tidtable.obj ) : error LNK2005: __encoded_null already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __unlock already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(mlock.obj) : error LNK2005: __lock already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(setlocal.obj) : error LNK2005: _setlocale already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(tzset.obj) : error LNK2005: __tzset already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(_ctype.obj) : error LNK2005: _isspace already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(_ctype.obj) : error LNK2005: _iscntrl already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(atox.obj) : error LNK2005: _atoi already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(getenv.obj) : error LNK2005: _getenv already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(strtol.obj) : error LNK2005: _strtol already defined in msvcrt.lib(MSVCR80.dll)
LIBCMT.lib(strtol.obj) : error LNK2005: _strtoul already defined in msvcrt.lib(MSVCR80.dll)
   Creating library build\temp.win32-2.4\Release\_mysql.lib and object build\temp.win32-2.4\Release\_mysql.exp
LINK : warning LNK4098: defaultlib 'LIBCMT' conflicts with use of other libs; use /NODEFAULTLIB:library
LIBCMT.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup
build\lib.win32-2.4\_mysql.pyd : fatal error LNK1120: 1 unresolved externals

I have try using libcmt and have /NODEFAULTLIB:msvcrt

C:\MySQL-python-1.2.1_p2.tar\MySQL-python-1.2.1_p2>"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe" /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\mysql\l ib\opt /LIBPATH:c:\python24\libs /LIBPATH:c:\python24\PCBuild mysqlclient.lib zlib.lib libcmt.lib wsock32.lib advapi32.lib /EXPORT:init_mysql build\temp.win32-2 .4\Release\_mysql.obj /OUT:build\lib.win32-2.4\_mysql.pyd /IMPLIB:build\temp.win32-2.4\Release\_mysql.lib /NODEFAULTLIB:msvcrt
   Creating library build\temp.win32-2.4\Release\_mysql.lib and object build\temp.win32-2.4\Release\_mysql.exp
_mysql.obj : warning LNK4217: locally defined symbol _sprintf imported in function __mysql_ConnectionObject_repr
_mysql.obj : error LNK2019: unresolved external symbol __imp__strncat referenced in function __mysql_row_to_dict
_mysql.obj : error LNK2019: unresolved external symbol __imp__strncpy referenced in function __mysql_row_to_dict
build\lib.win32-2.4\_mysql.pyd : fatal error LNK1120: 2 unresolved externals

And I have also try using none. of them, please note this is the same as the above

C:\MySQL-python-1.2.1_p2.tar\MySQL-python-1.2.1_p2>"C:\Program Files\Microsoft Visual Studio 8\VC\BIN\link.exe" /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\mysql\lib\opt /LIBPATH:c:\python24\libs /LIBPATH:c:\python24\PCBuild mysqlclient.lib zlib.lib wsock32.lib advapi32.lib /EXPORT:init_mysql build\temp.win32-2.4\Release\_mysql.obj /OUT:build\lib.win32-2.4\_mysql.pyd /IMPLIB:build\temp.win32-2.4\Release\_mysql.lib /NODEFAULTLIB:msvcrt /NODEFAULTLIB:libcrt
   Creating library build\temp.win32-2.4\Release\_mysql.lib and object build\temp.win32-2.4\Release\_mysql.exp
_mysql.obj : warning LNK4217: locally defined symbol _sprintf imported in function __mysql_ConnectionObject_repr
_mysql.obj : error LNK2019: unresolved external symbol __imp__strncat referenced in function __mysql_row_to_dict
_mysql.obj : error LNK2019: unresolved external symbol __imp__strncpy referenced in function __mysql_row_to_dict
build\lib.win32-2.4\_mysql.pyd : fatal error LNK1120: 2 unresolved externals

now the weird thing is that i'm missing some very common functions I even try adding

#include <windows.h>
#include <stdio.h>
#include <string.h>
#include <stddef.h>
#include <stdlib.h>

to the mysql.c file and they are still missing.

my site.cfg mysql section is

[compiler]
mysql_root: C:\mysql
library_dirs: %(mysql_root)s\lib\opt
include_dirs: %(mysql_root)s\include
libraries: mysqlclient zlib libcmt wsock32 advapi32
# libcmt msvcrt
#extra_compile_args:
#extra_objects:

I have also notice I have multiple versions of libcmt.lib and  msvcrt.lib
one in C:\Program Files\Microsoft Visual Studio 8\VC\lib and another in C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib

I have try with both and still having the same error.

sorry for the long message but it's a complex problem so it needs big files:)

any ideas?


-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to