On Jan 31, 2005, at 15:53, Opstad, Dave wrote:
I've had good luck building C-language extensions for my Python work, at
least up until now. I've got a C file which #includes Carbon.h as well as
the canonical Python.h. Attempting to use distutils to build it fails with
the error message:
ld: build/temp.darwin-7.7.0-Power_Macintosh-2.3/MacUtils/macutilsmodule.o
illegal reference to symbol: _FSPathMakeRef defined in indirectly referenced
dynamic library
/System/Library/Frameworks/CoreServices.framework/Versions/A/ Frameworks/Carb
onCore.framework/Versions/A/CarbonCore
when executing this line:
gcc -Wl,-F. -bundle -framework Python
build/temp.darwin-7.7.0-Power_Macintosh-2.3/MacUtils/macutilsmodule.o -o
build/lib.darwin-7.7.0-Power_Macintosh-2.3/macutilsbackend.so
So I tried recompiling/linking by using the same line but adding "-framework
Carbon" and the .so built with no complaints. However, once I installed it
and tried to import it, I got this from Python:
Yeah, but you should probably -framework CoreServices instead, as that will link in only what it needs, rather than all of Carbon.
ValueError: module functions cannot set METH_CLASS or METH_STATIC
What does this mean? I searched the mail.python.org list and saw a post back
in April, 2004 from someone else who saw this exact same line, but nobody
every replied to that message.
It think that it means that you're adding a method to a module dictionary and you shouldn't do that.. functions should be on the module dictionary. Without some source, I wouldn't really be able to say.
More generally, I'd like to know the answer to this: How do I specify
changes to the gcc lines that distutils runs when it builds? Is there a way
(short of modifying distutils themselves) to specify optional and/or
additional arguments to these commands?
from distutils.core import Extension, setup
setup(name="LaunchServices", version="0.2",
ext_modules=[
Extension('_Launch', ['_Launchmodule.c'],
extra_link_args=['-framework', 'ApplicationServices'])
],
py_modules=['LaunchServices.Launch', 'LaunchServices.LaunchServices'],
package_dir={'LaunchServices':'../../../Lib/plat-mac/Carbon'}
)
-bob
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig