'ld: advertencia: directorio no encontrado para la opción'


524

Cuando estoy compilando mis aplicaciones Xcode 4, recibo esta advertencia:

ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../../../Downloads/Google Analytics SDK/Library'
ld: warning: directory not found for option '-L/Users/frenck/Downloads/apz/../Google Analytics SDK/Library'

Pero no tengo Google Analytics en mi aplicación, lo eliminé todo, ¿cómo puedo eliminar el error? Y archivar una aplicación me da el error:

clang: error: no such file or directory: 'armv6'
Command /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

He intentado muchas cosas, pero sigo recibiendo este error cuando intento crear un archivo .IPA


10
Tenga en cuenta que hay una advertencia muy similar, pero con -Fen lugar de -L: directory not found for option '-F/.... Consulte la respuesta de @macayer a continuación para ver la diferencia.
pkamb

1
Nota: Asegúrese de que los directorios con espacios estén entre comillas. por ejemplo, $(PROJECT_DIR)/my folderdebe ser "" (PROJECT_DIR) / my folder "
Jacksonkr

Me encontré con este problema cuando mi clase no tenía la membresía objetivo adecuada especificada .
Tom Howard

1
@ Jackson Eso me lo arregló. Recibí la advertencia -F, y la arreglé citando como lo indicó en 'Rutas de búsqueda de marco' en Configuración de compilación. Gracias
Mark

El respaldo regular es la mejor práctica.
Gajendra K Chauhan

Respuestas:


877

Usted necesita hacer ésto:

  1. Haga clic en su proyecto (objetivos)
  2. Haga clic en Configuración de compilación
    • si su error incluye la -Lbandera, elimine los valores en las Rutas de búsqueda de la biblioteca
    • si su error incluye el -Findicador, elimine los valores en las rutas de búsqueda de Framework

Y con respecto al segundo error, lo siento, no puedo ayudarte con eso. Espero que alguien más pueda ayudarte.


55
Esto rompió mi proyecto, pero acabo de comentar mis #imports de Google Analytics y eliminé el SDK, salí de xcode, volví a agregar y descomenté mis #imports y funcionó de nuevo :)
emotality

1
¿Hay algún paso que haya omitido? Hice esto y ahora Xcode no puede encontrar un montón de otros archivos que funcionaban segundos antes. ¡Ayuda!
usuario

99
Tenga cuidado de eliminar si realmente necesita esa ruta de la biblioteca. Verifique que la ruta especificada en el error existe. La ubicación de la biblioteca en el disco puede haberse movido.
AWrightIV

3
Después de eliminar las rutas de búsqueda de la biblioteca , recibí el error: ld: library not found for -lMoboSDK clang: error: linker command failed with exit code 1 (use -v to see invocation)(lMoboSDK es mi biblioteca estática)
lee

2
Tuve que eliminar las rutas en 'Rutas de búsqueda de marco' en mi OBJETIVO 'Pruebas de aplicaciones' para borrar el error.
AT3D

754

Hay dos errores que las personas parecen confundir.

Si se trata de un error de "directorio no encontrado para la opción ' -L / ...", eso significa que es un Error de biblioteca, y debe intentar:

  • Haga clic en su proyecto (objetivos)
  • Haga clic en Configuración de compilación
  • En Rutas de búsqueda de biblioteca , elimine las rutas

Si se trata de un "directorio no encontrado para la opción ' -F / ...", eso significa que se trata de un error de marco y debe intentar:

  • Haga clic en su proyecto (objetivos)
  • Haga clic en Configuración de compilación
  • En Rutas de búsqueda de marco , elimine las rutas

Esto puede suceder cuando mueve el archivo al que se hace referencia.


3
¿Por qué no todas las respuestas pueden ser tan concisas y útiles como las suyas? Gracias. Tengo una pregunta secundaria: ¿dónde se aprende acerca de los errores crípticos -L / -F? Soy nuevo en todo el juego de vinculación / compilación / construcción, y la documentación incorporada de Xcode no es exactamente algo para destacar. Supongo que se puede acceder a la mayoría de estas cosas a través de la línea de comandos. ¿Estoy en lo cierto en esta suposición? Me ha resultado difícil saber por dónde empezar con todo esto. Estoy acostumbrado al desarrollo web, por lo que, como podría suponer, encontrar información en ese ámbito es un poco más fácil.
Ben Stock

al eliminar las rutas de búsqueda, nuevamente muestra FacebookSDK no encontrado. Es un error -F. Estoy usando Xcode 6.1
Rinku

Trabajó para mi. Tuve que eliminar las rutas de búsqueda del marco en los objetivos tanto para el proyecto como para el módulo de prueba (tras la actualización del proyecto de iOS8.3 a iOS9).
ObjectiveTC

1
Vamos Apple, lo que sucedió con "simplemente funciona" ... esto también debería aplicarse a los desarrolladores. Al menos ofrécenos sugerencias sobre cómo resolver este tipo de problemas en lugar de estos mensajes crípticos. Un poco recuerda a Microsoft, ew.
John Contarino

2
Muchas gracias por la directriz "-L es para rutas de búsqueda de bibliotecas" y "-F es rutas de búsqueda de marco" , funcionó perfecto para mí.
swiftBoy

79

Mi problema fue que abrí el .xcodeproj original en lugar del .xcworkspace generado por CocoaPods.


Maldición, esto realmente me salvó después de 3 horas de golpear mi cabeza con el teclado
Gregory Saldanha

60

Tuve que eliminar las referencias en:

  • Objetivo
  • Configuración de compilación
  • Rutas de búsqueda de marco

ingrese la descripción de la imagen aquí

Entonces la construcción se rompió (esperado). Así que eliminé el Framework (FB SDK), lo volví a agregar y listo. No más errores o advertencias. :)


19

Uso vainas de cacao, así que dejé Xcode y corrí

pod install

de nuevo y reabrí el proyecto. Esto solucionó todo!


1
¡No estoy seguro de por qué lo rechazan cuando su sugerencia realmente puede ser una solución a un problema similar! Específicamente, es una solución si experimenta mensajes de error similares después de agregar una nueva configuración de compilación a su proyecto. Dado que agregar una nueva configuración de construcción automáticamente implica duplicar una configuración existente, debe ejecutar pod installpara ajustar el valor de la columna "Basado en el archivo de configuración".
Cellane

1
Además, las vainas de cacao generan un espacio de trabajo. asegúrese de abrir eso, no el archivo del proyecto. pod install + open the workspace file solucionó mi problema.
Michael Krebs

En iónico, esto funciona para mí cuando ejecuté la instalación de pod dentro de la carpeta de plataformas / ios
Bas van Dijk

18

Para mí, el problema era un carácter de escape "\" perdido.

Mis rutas de búsqueda se dividieron en varias líneas en las rutas de búsqueda de la biblioteca. Convenientemente, se estaban rompiendo en espacios en mi camino. Agregar el escape "\" lo arregló para mí.

$(PROJECT_DIR)/My\ Project\ Name/My\ Directory

Esta es la respuesta perfecta! Probado en abril de 2014
Van Du Tran el

1
Es patético que esto todavía se rompa en Xcode 6, febrero de 2015. No es necesario escapar manualmente de los espacios en las rutas.
StilesCrisis

Las respuestas aceptadas y votadas más arriba no funcionaron para mí, pero esto sí. Mi sugerencia de que se trataba de este problema es que Xcode arrojaba errores de 2 L, cada error era un fragmento de la ruta completa y se estaba rompiendo en el espacio. Acordamos que en 2015 no deberíamos tener que preocuparnos por escapar de espacios, ¡eso debería manejarse detrás de escena para nosotros!
John Contarino

Sí, este es un problema de larga data en Xcode que ocurre cuando el sistema agrega su ruta de búsqueda automáticamente (es decir, al arrastrar una biblioteca a 'binarios incrustados'; por alguna razón, no escapa de los espacios automáticamente y luego interpreta ellos como rutas de archivos separadas.
Ash

13

Encontré la referencia que tuve que eliminar en:

  • Objetivo
  • Configuración de compilación
  • Rutas de búsqueda de encabezado

33
Uso de Google para encontrar una solución para 'ld: warning: directorio no encontrado para la opción', encontrar mi propia respuesta como solución
Jasper

13

En mi caso, el problema eran las rutas de búsqueda de marco que tenían enlaces incompletos, inactivos, antiguos o múltiples marcos del mismo tipo. Elimínelos y su proyecto se compilará sin ningún problema.

asegúrese de hacer Build -> clean

ingrese la descripción de la imagen aquí


10

Me encontré con el mismo problema (el primero) después de un bloqueo de Xcode y ninguna de las soluciones propuestas funcionó. Para suprimir la advertencia que he hecho:

• gestionar esquemas ...

• eliminó el esquema actual

• Autocrate Schemes Now


Deberíamos hacer que el autor de esta pregunta original publique una Nota para analizar todas estas soluciones. Una lista. Pruebe la primera, la segunda solución siguiente, la solución siguiente ... porque esto lo hizo para mi migración de un proyecto anterior y otras soluciones son soluciones razonables. Si no lo hubiera probado todo, no habría encontrado este ... seguido y estado nadando confundido. Gracias Francesco!
Matthew Ferguson el

8

Esto es lo que funcionó para mí:

  1. Haga clic en Proyecto
  2. Haga clic en Configuración de compilación
  3. Buscar "Rutas de búsqueda de marco"
  4. Borre la ruta y escriba "$ (heredado)"

6

Me mordió lo que parece ser el mismo problema también (esta vez en XCode 5.0.2). En mi caso, lo que sucedió fue que XCode decidió escapar de las citas que ya se encuentran en "Configuración de compilación". Así por ejemplo:

"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1"

convirtió

\"$(SRCROOT)/../GoogleAdMobAdsSdkiOS-6.4.1\"

lo que hizo que la construcción fallara ...

Una vez que eliminé los escapes en las citas, todo volvió a funcionar bien. Además, probablemente sería mejor eliminar las comillas por completo a menos que las necesite.


1
ENORME +1 por esto. Esos escapes en el error "fueron la causa del" directorio no encontrado "para las opciones -L y -F.
Será

1
consejo muy útil ... en mi proyecto xcode 5.0.2 escapó las comillas al principio, en el medio y al final de las rutas ... también había duplicado las rutas para algunos marcos de una manera extraña ... eliminó las escapes, simplemente "real marcos de ruta "para los que está utilizando el proyecto y eliminó las advertencias ... también fue necesario eliminar / agregar marcos nuevamente después de corregir los caminos
Marcos Reboucas

6

Si esto sucede después de agregar un Podfile a su proyecto y ejecutar la instalación del pod, vaya a la carpeta de su proyecto, verá un nuevo archivo que se ha creado "{ProjectName} .xcworkspace" - abra ese archivo en xcode

Los pods que se han instalado se vincularán correctamente a su proyecto en este archivo


Podría ser que abrió el archivo del proyecto en lugar del espacio de trabajo.
Jason

3

Siga esta solución paso a paso:

  1. Haga clic en su proyecto (objetivos);
  2. Haga clic en Configuración de compilación;
  3. En Rutas de búsqueda de biblioteca, elimine las rutas;
  4. Agregar ./**en rutas de búsqueda de biblioteca.

3

Respuesta suplementaria

Todas las respuestas dicen que se eliminan las rutas de búsqueda Framework o Library del objetivo. Tuve dos problemas:

  • Primero, estaba mirando mi objetivo principal del proyecto en lugar del objetivo de la Prueba de Unidad.
  • En segundo lugar, no pude descubrir cómo eliminar la ruta de búsqueda del marco. Resultó que solo estaba haciendo clic para entrar en modo de edición y luego simplemente eliminando la cadena.

Quiero probar esto, pero me preocupa que rompa la aplicación. ¿Estás seguro de que todo funcionó después de hacer esto?
Supertecnoboff

@Supertecnoboff Si le preocupa que no funcione, guarde la cadena antes de eliminarla. Siempre puedes volver a pegarlo. Mi aplicación ya estaba rota, así que tuve que seguir intentando hasta que algo funcionó. Mi respuesta anterior es lo que funcionó para mí.
Suragch

1

Para mí, el problema parecía ser que no había incluido los marcos apropiados (al copiar complementos de otro proyecto, tampoco copié los archivos de marcos)


1

La clave para este tipo de error es ir a la configuración de compilación y mirar cada una de las secciones de rutas de búsqueda, como Rutas de búsqueda de bibliotecas, Rutas de búsqueda de marco y posiblemente incluso Rutas de búsqueda de encabezado y borrar cualquiera de las rutas que ya no se aplican. la aplicación está teniendo dificultades para intentar encontrarla. Quítelos y continúe, buen señor


1

ve a ver qué marco falta, luego ve a

=> Fases de construcción => Enlace binario con bibliotecas

eliminar la biblioteca y luego volver a agregar


1

¿Tuve un problema similar que desapareció cuando creé un nuevo esquema y lo usé para reconstruir?


1

Para mí también tengo las pruebas habilitadas. La ruta de búsqueda para las pruebas también se completó incorrectamente.

¡Borre la ruta de búsqueda de Framework tanto para el código regular como para el código de prueba!


1

Debido a los directorios personalizados que han ingresado a las rutas de búsqueda (frameworks y biblioteca), el proyecto anula los directorios de pod. entonces no puede encontrarlo.

Para resolver este problema, elimine todos los directorios personalizados de

Rutas de búsqueda -> Rutas de biblioteca y rutas de marco,

solo ver $ {heredado}.

Espero que esto ayude. Funcionó para mi.


1

ingrese la descripción de la imagen aquí

Agregue $ (heredado) -Objc -lcrypto - lssl en Proyecto -> Configuración de compilación -> Ruta de búsqueda -> Ruta de búsqueda de biblioteca


La solución anterior funciona bien para mí. Si no funciona para usted, comparta la captura de pantalla.
Bandish Kumar

1

Si esto sucede después de una instalación de pod con algunas dependencias, el problema podría ser que esté utilizando la versión anterior de la aplicación (.xcworkspace) en Xcode.

Después de una instalación de pod, este es el resultado que puede ver.

La salida de una instalación de pod.

Salida de una instalación de pod

Haga exactamente eso, cierre su ventana actual de Xcode y abra el nuevo .xcworkspace.

Abriendo el nuevo xcworkspace]

Abrir el nuevo xcworkspace


0

debe marcar la opción para esto:

Configuración de compilación-> Rutas de búsqueda de marco-> {ingrese su ruta de proyecto}


0

He examinado todas las [Rutas de búsqueda de biblioteca - Rutas de búsqueda de marco - Rutas de búsqueda de encabezado]. pero no hay rutas para eliminar, así que pude hacer que esta alerta desapareciera al ingresar al paquete Xcode y crear un directorio vacío en la ubicación de la ruta de la que se quejaba la alerta.


0

Asegúrese de que solo 1 "libFlurry.a" esté seleccionado en el destino

trabajó para mi.

ingrese la descripción de la imagen aquí


0

No olvide crear la misma configuración para el proyecto Pod en su espacio de trabajo, si cambia a la nueva configuración de MainApps.

Por ejemplo,

En mi caso, para resolver este problema, tuve que crear la configuración ReleaseOfficial también para los proyectos de Pod cuando creé la configuración ReleaseOfficial para mi MainApp.


0

Si instaló un nuevo pod y luego recibió este error, salga de xcode> abra de nuevo> compile el proyecto


0

Si la solución típica no resuelve el problema, lo que me solucionó fue asegurarme de que todas las versiones de iOS en el proyecto xcode (por ejemplo, IPHONEOS_DEPLOYMENT_TARGET) / objetivos de implementación, podfiles (si corresponde), etc. estén configurados con el mismo número de versión.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.