2011-02-04 13 views
12

Estoy tratando de usar las bibliotecas de Twitter y después de agregar liboauth.a y agregar oauthconsumeriphonelib a mi ruta de búsqueda de encabezado, ahora tengo 1 error de compilación, que puedo Parece que se deshace de eso.XCode Compilador Error: ld: biblioteca no encontrada para -loauth

ld: library not found for -loauth 
Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1 

¿Alguien sabe qué podría estar causando esto?

Respuesta

17

Continuar Lo que Robin sugirió También debe establecer la ruta de búsqueda de la biblioteca. Haga clic con el botón derecho en el archivo de destino y seleccione: obtener información; también puede obtener el mismo eligiendo Editar objetivo de acto en la pestaña Proyecto en XCode. Busque la Ruta de búsqueda de bibliotecas y agregue este "$ (SRCROOT)/Twitter + OAuth/SAOAuthTwitterEngine" Donde Twitter + OAuth/SAOAuthTwitterEngine es la ruta del directorio de la Biblioteca de Twitter en la carpeta del proyecto. Espero que esto solucione el problema.


enter image description here

+0

Gracias Rahul. Hice lo que sugirió y ahora veo otros errores con los que pensé que ya había terminado. ld: advertencia: en /usr/local/lib/liboauth.dylib, el archivo fue creado para i386 que no es la arquitectura que está siendo enlazada (armv6) tuve que reinstalar liboauth con ./configure CC = "gcc -arch i386" CXX = "g ++ -arch i386" y esos errores se habían ido. Esto es solo una advertencia, pero se está quejando de un montón de archivos perdidos ... objc-class-ref-to-OAToken en SA_OAuthTwitterEngine.o – Nefsu

+0

De hecho, veo esa advertencia solo cuando construyo para el dispositivo. Cuando construyo en el simulador, veo las mismas advertencias sobre las referencias a las clases de OAuth que faltan, pero no veo la advertencia. – Nefsu

+0

Deberá agregar esas configuraciones For All por separado a Viz All configuration en The Target Build Properties. También asegúrese de que la biblioteca esté físicamente presente en la ubicación mencionada en el archivo de proyecto –

2

Bien @Nefsu necesita agregar esas bibliotecas a su proyecto agregando un marco existente y luego dando la ruta de las bibliotecas que desea usar.

Y si ya ha agregado las bibliotecas de arrastrar y soltar, que dont eliminarlos sólo tiene que añadir marco existente haciendo clic derecho sobre grupos y carpetas y añadir las bibliotecas de la carpeta y que se llevará a cabo

+0

Gracias por la sugerencia Robin, pero no estoy seguro de lo que quiere decir con "dar la ruta a las bibliotecas que desea utilizar". Agregué liboauth.a de/usr/local/lib al hacer clic derecho en no frameworks y seleccionarlo como un framework externo existente. ¿Hay algo más que se supone que debo hacer? Debo señalar que antes de agregar esa lib, estaba obteniendo cinco errores de compilación sobre clases que no se podían encontrar. – Nefsu

+0

puede dar el error exacto que está obteniendo durante la compilación – Robin

+0

, también puede consultar este enlace http://stackoverflow.com/questions/4835754/why-is-there-a-compile-error-when-including-openssl- static-library/4835913 # 4835913 – Robin

1

descubrí este mensaje muy engañosa al tratar de actualizar a la nueva biblioteca de Google Analytics.

En mi caso, el problema era tener DOS COPIA CONFLICTIVAS de la biblioteca. Estaban en carpetas diferentes, pero ambas se enumeraban en las Rutas de compilación de la Biblioteca de mi aplicación (en Configuraciones de compilación).

Mover todos los archivos de biblioteca obsoletos de la carpeta terminaron haciendo el truco e hicieron desaparecer los misteriosos mensajes de error.

Cuestiones relacionadas