Estoy tratando de compilar un proyecto en Mac OS X que enlace a Python. Tengo el framework Python 2.7 en /Library/Frameworks
. Compilo para Mac OS X 4, así que también tengo Python 2.3 en /Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks
. Si invoco gcc
con -F/Library/Frameworks
y mirada a lo que hace con -v
, veo lo siguiente:Ruta de búsqueda del marco de GCC Mac OS X:/Sistema/Biblioteca anterior/Biblioteca?
ignoring duplicate directory "/Library/Frameworks"
as it is a non-system directory that duplicates a system directory
<skipped>
#include "..." search starts here:
#include <...> search starts here:
<skipped>
/Developer/SDKs/MacOSX10.4u.sdk/System/Library/Frameworks (framework directory)
/Developer/SDKs/MacOSX10.4u.sdk/Library/Frameworks (framework directory)
es decir, ignora mi /Library/Frameworks
porque es un duplicado (de la última ruta, que es un enlace simbólico a /Library/Frameworks
) y luego encuentra su propio framework Python 2.3 antes de mi 2.7.
Entiendo cómo evitar esto (por ejemplo, use -I
con una ruta completa al directorio de inclusión), pero estoy un tanto desconcertado por el orden de búsqueda. P.ej. el enlazador (ld
) seems to search System/Library and Library in different order. He tratado de leer los manuales y Google, pero, al parecer, mis habilidades son demasiado bajos :)
supongo que mis preguntas son:
- Es esto un comportamiento normal y por qué
gcc
búsquedas en este orden, mientras queld
busca de manera diferente? - ¿Hay algún método de comprensión de frameworks para resolver esto, o tengo que usar la antigua y simple bandera
-I
?
Gracias, esta es una solución, no se le ocurrió a mí que puedo utilizar un enlace simbólico :) (Por desgracia, he perdido el control sobre esa cuenta temporal, entonces no puedo marcar la respuesta como solución.) –