On 07/24/2013 08:51 PM, David M. Cotter wrote:
update: okay so the python27.dll is in /windows/system32 so ignore that
i've set my include directory correct, so i can compile
i've set my "additional libraries" directory to the "libs" directory (where the ".lib" files are.
(note: NOT including "Lib" directory, cuz that's full of .py files and folders) (note: NOT including "DLLs"
directory, cuz, why would i?)
No need to specify "additional dependencies" for the .lib file, cuz the
pyconfig.h file does that.
but there is no "python27_d.dll" anywhere to be found, so i hacked pyconfig.h to get rid
of the "_d".
so it all compiles.
but it won't link:
LNK2001: unresolved external symbol __imp___Py_RefTotal
LNK2001: unresolved external symbol __imp___Py_NoneStruct
LNK2019: unresolved external symbol __imp__PyArg_ParseTuple
LNK2019: unresolved external symbol __imp__PyFloat_FromDouble
LNK2019: unresolved external symbol __imp__PyString_FromString
LNK2019: unresolved external symbol __imp__PyRun_SimpleStringFlags
LNK2019: unresolved external symbol __imp__Py_InitModule4TraceRefs
LNK2019: unresolved external symbol __imp__Py_Initialize
LNK2019: unresolved external symbol __imp__Py_SetProgramName
LNK2019: unresolved external symbol __imp__Py_Finalize
LNK2019: unresolved external symbol __imp__PyRun_SimpleFileExFlags
what, pray tell, am i doing wrong? *hopeful face*
Digging *far* back in my Windows memory, those look like imports. You
probably need the import lib for the Python.dll. Probably called
somethng like python.lib. You could check that by doing a dumpbin of
python.dll and searching for those entry points.
An import lib in Windows simply tells the linker that those symbols will
be resolved at runtime, and from a particular dll. They can also change
the names to be used (removing the __imp__ prefix) and even specify a
numeric entry point (to slow down people who reverse engineer these things).
If I recall right, there's a way in Microsoft's toolset to create an
import lib from a dll, assuming the dll doesn't restrict itself to those
numeric thingies.
As for the _d suffix, that's commonly used to specify debug versions of
things. They would have extra symbol information, and less optimized
code so that it's easier to use a debugger on them.
--
DaveA
--
http://mail.python.org/mailman/listinfo/python-list