Come passare la bandiera a GCC in script Python setup.py?
-
16-09-2019 - |
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'])])
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