title: Linking errors when compiling python extension module
body: <p>So I'm writing a python extension module in C and I'm trying to compile it for my 64-bit Python build. After bashing my head against MinGW for a while, I did some googling around and found that MinGW doesn't do 64-bit extension modules, so I set up Visual C++ 2008 Express with the Win7 SDK and DISTUTILS_USE_SDK and MSSdk both equal to 1 as in the answers to <a href="https://stackoverflow.com/questions/4624507/building-64-bit-c-python-extensions-on-windows">this question</a>. </p>
  
  <p>I finally got Distutils to find the compilers, but when I compile the extension I get this output:</p>
  
  <pre><code>core.obj : error LNK2019: unresolved external symbol __imp__PyErr_NoMemory refer
  enced in function "int __cdecl handleErrors(int)" (?handleErrors@@YAHH@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyErr_SetString refe
  renced in function "int __cdecl handleErrors(int)" (?handleErrors@@YAHH@Z)
  core.obj : error LNK2019: unresolved external symbol _opus_encoder_destroy refer
  enced in function "void __cdecl OpusEncoder_dealloc(struct OpusEncoderObject *)"
   (?OpusEncoder_dealloc@@YAXPAUOpusEncoderObject@@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__Py_BuildValue refere
  nced in function "int __cdecl OpusEncoder_init(struct OpusEncoderObject *,struct
   _object *,struct _object *)" (?OpusEncoder_init@@YAHPAUOpusEncoderObject@@PAU_o
  bject@@1@Z)
  core.obj : error LNK2019: unresolved external symbol _opus_encoder_create refere
  nced in function "int __cdecl OpusEncoder_init(struct OpusEncoderObject *,struct
   _object *,struct _object *)" (?OpusEncoder_init@@YAHPAUOpusEncoderObject@@PAU_o
  bject@@1@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyArg_ParseTupleAndK
  eywords referenced in function "int __cdecl OpusEncoder_init(struct OpusEncoderO
  bject *,struct _object *,struct _object *)" (?OpusEncoder_init@@YAHPAUOpusEncode
  rObject@@PAU_object@@1@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyTuple_Pack referen
  ced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncoderO
  bject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderObj
  ect@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyString_FromString
  referenced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusE
  ncoderObject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEnc
  oderObject@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol _opus_encode_float referenc
  ed in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncoderOb
  ject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderObje
  ct@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyFloat_AsDouble ref
  erenced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEnco
  derObject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncode
  rObject@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyType_IsSubtype ref
  erenced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEnco
  derObject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncode
  rObject@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyFloat_Type referen
  ced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncoderO
  bject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderObj
  ect@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol _opus_encode referenced in
  function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncoderObject *
  ,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderObject@@PA
  U1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyErr_Occurred refer
  enced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncode
  rObject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderO
  bject@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyInt_AsLong referen
  ced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEncoderO
  bject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncoderObj
  ect@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyArg_ParseTuple ref
  erenced in function "struct _object * __cdecl OpusEncoder_encode(struct OpusEnco
  derObject *,struct _object *)" (?OpusEncoder_encode@@YAPAU_object@@PAUOpusEncode
  rObject@@PAU1@@Z)
  core.obj : error LNK2019: unresolved external symbol __imp__PyModule_AddObject r
  eferenced in function _initopys
  core.obj : error LNK2019: unresolved external symbol __imp__PyErr_NewException r
  eferenced in function _initopys
  core.obj : error LNK2019: unresolved external symbol __imp__Py_InitModule4 refer
  enced in function _initopys
  core.obj : error LNK2019: unresolved external symbol __imp__PyType_Ready referen
  ced in function _initopys
  core.obj : error LNK2019: unresolved external symbol __imp__PyType_GenericNew re
  ferenced in function _initopys
  core.obj : error LNK2019: unresolved external symbol __imp__Py_Initialize refere
  nced in function _main
  core.obj : error LNK2019: unresolved external symbol __imp__Py_SetProgramName re
  ferenced in function _main
  build\lib.win-amd64-2.7\opys.pyd : fatal error LNK1120: 23 unresolved externals
  error: command '"C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN\link.
  exe"' failed with exit status 1120
  </code></pre>
  
  <p>I've kinda hit a wall here after banging my head against this for 3 days, any advice?</p>