No subject

Krzysztof Kobus kk720801 at
Wed Jan 6 12:57:52 CET 2010


> Well, it seems that one of your files is a different architecture than
> the others. Based on the location, I'd say it's i386 while the rest of
> it would be PowerPC. You can cross-compile but you can't link an i386
> library to a PowerPC library.
Thank you for the hint. I have checked with "file" command the format of the libraries on mac and got following result:

one of my application's libraries:
libkkbase.dylib: Mach-O dynamically linked shared library i386

my python module that has been built using standard python distutils: Mach-O bundle i386

I am not actually sure what's the difference between "bundle" and "dynamically linked shared library" on mac and if they can be linked together? Perhaps I should configure distutils on mac somehow specially to make the module ready for embedding?



On Tue, Jan 5, 2010 at 7:33 AM, Krzysztof Kobus <kk720801 at> wrote:
> Hi,
I have a problem with linking python module with my application on mac
in order to make the module available in "embedded python".
> My python module is contained in  j3kmodule.cxx file and module initialization function is exported in j3kmodule.h
> j3kmodule.h:
> ------------
> PyMODINIT_FUNC PyInit_j3k(void);
> j3kmodule.cxx:
> --------------
> PyInit_j3k(void)
>  {
>  PyObject *m = NULL;
>  if ((m = PyModule_Create(&j3k_module)) == NULL)
>    return NULL;
>  return m;
>  }
> Then in my application in KkPython.cxx file I have:
> KkPython.cxx:
> -------------
> #include "j3kmodule.h"
> /* Add a builtin module, before Py_Initialize */
> PyImport_AppendInittab("j3k", PyInit_j3k);
I link my application with the module and get following linking error
on mac although on open suse linux exactly the same procedure works
> g++ -headerpad_max_install_names -o
../../bin/ main.o KkPython.o -lkkbase
-lQtSolutions_PropertyBrowser-2.5 -lpython3.1
-framework OpenGL -framework AGL
> ld: warning in
file is not of required architecture
> Undefined symbols:
>  "_PyInit_j3k", referenced from:
>      _PyInit_j3k$non_lazy_ptr in KkPython.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make: *** [../../bin/] Error 1
> I appreciate any hints,
> best greetings,
> Krzysztof Kobus


More information about the Python-list mailing list