2009-11-04 5 views
17

CoreFoundation 프레임 워크가 필요한 C에서 파이썬 확장을 쓰고 있습니다. 이와 함께 잘 컴파일 :Python setup.py 스크립트에서 플래그를 gcc에 전달하는 방법은 무엇입니까?

gcc -o foo foo.c -framework CoreFoundation -framework Python 

("-framework는"애플 전용 GCC 확장이지만, 어쨌든 특정 프레임 워크를 사용하고 있기 때문에 괜찮아요) 난에 setup.py 어떻게 알 수 있습니까

을 이 플래그를 gcc에 전달 하시겠습니까?

나는이 시도하지만 (이것은 컴파일,하지만 난 그것을 실행하려고하면 다음 정의되지 않은 기호 불평) 작동하지 않습니다

from distutils.core import setup, Extension 
setup(name='foo', 
     version='1.0', 
     author='Me', 
     ext_modules=[Extension('foo', 
          ['foo.c'], 
          extra_compile_args=['-framework CoreFoundation'])]) 

편집 :

이를 작동 여부 :

from distutils.core import setup, Extension 
setup(name='foo', 
     version='1.0', 
     author='Me', 
     ext_modules=[Extension('foo', 
          ['foo.c'], 
          extra_link_args=['-framework', 'CoreFoundation'])]) 

답변

14

아마도 extra_link_args을 설정해야 할 필요가 있을까요? extra_compile_args은 결과 링크시 extra_link_args 소스 코드를 컴파일 할 때 사용됩니다.

+0

고마워요,하지만이 시도하고 동일한 문제가 발생합니다. – Michael

+0

죄송합니다; "build"디렉토리를 지우고 다시 빌드하면 작동하는 것처럼 보입니다. 감사! – Michael

+2

이것을 찾은 후에 도움이되는 인수 목록을 찾았습니다. http://docs.python.org/distutils/apiref.html?highlight=extension#distutils.core.Extension 올바른 방향으로 나를 안내해 주셔서 감사합니다. – Joel

관련 문제