On Wed, Aug 4, 2010 at 8:26 PM, Michael Kamensky <[email protected]> wrote: > Hello, > > I'd like to report a bug with Cython 0.12.1 which is also present in the > latest SVN version: > embedding an interpreter with the --embed option (to create the .exe file) > fails on MS Windows > with the error "undefined reference to winm...@16". I was able to overcome > that error by > changing this line in the output .c file: > > int wmain(int argc, wchar_t **argv) { > > into this: > > int main(int argc, wchar_t **argv) { > > The second problem (also on MS Windows) is that sys.argv do not get parsed > correctly due to > the fact that it seems like the command line is parsed as "char**", but > Python expects "wchar_t**". > Here's what I did to overcome the issue: > > I changed this: > > PySys_SetArgv(argc, argv); __pyx_module_is_main_test1 = 1; > > Into this: > > //PySys_SetArgv(argc, argv); __pyx_module_is_main_test1 = 1; > PyObject *py_argv= PyList_New(0); > int i; > for (i=0; i<argc; i++) { > PyObject *item= PyUnicode_Decode(argv[i], strlen(argv[i]), > Py_FileSystemDefaultEncoding, NULL); > if(item==NULL) { // should never happen > PyErr_Print(); > PyErr_Clear(); > } > else { > PyList_Append(py_argv, item); > Py_DECREF(item); > } > } > PySys_SetObject("argv", py_argv); > Py_DECREF(py_argv); > > > I'm not sure if it's optimal, I do get warnings during compilation, but at > least it works (it might not be cross-platform > or whatever, so it's just a proposed bug report with a demo as to how I > solved the issue). Hope it helps. :)
I think these are one and the same issue--wmain is supposed to be a main that takes "wide" char arguments. According to http://msdn.microsoft.com/en-us/library/aa299386(VS.60).aspx one can use either (for MS tools I guess, what complier are you using?) > I love your project, thank you so much for Cython! :D Thanks for the complements. - Robert _______________________________________________ Cython-dev mailing list [email protected] http://codespeak.net/mailman/listinfo/cython-dev
