Domanda

Sto scrivendo un'estensione Python in C che richiede il quadro CoreFoundation (tra le altre cose). Questo compila bene con:

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

( "- quadro" è un-solo Apple estensione GCC, ma va bene perché sto usando il loro quadro specifico in ogni caso)

Come faccio a dire setup.py passare questo flag a GCC?

Ho provato a farlo, ma non sembra funzionare (si compila, ma poi si lamenta di simboli non definiti quando provo a farlo funzionare):

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'])])

Modifica

Questo sembra funzionare:

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'])])
È stato utile?

Soluzione

Forse è necessario impostare extra_link_args, troppo? extra_compile_args viene utilizzato quando si compila il codice sorgente, extra_link_args durante il collegamento del risultato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top