tipos sintaxis programas programar librerias funciones ejemplos descargar datos como comandos codigos avanzados c++ swift xcode linker

programas - sintaxis de c++



Xcode no encuentra la biblioteca estática de C++ (1)

Así que tuve algunos problemas con esto antes, pero borré mi pregunta anterior y la actualicé a esta. Aquí va:

Quiero usar una biblioteca de C ++ en mi proyecto iOS Swift. Con la ayuda de esta comunidad compilé mi biblioteca como una biblioteca estática (archivo .a). Ahora creé un nuevo proyecto para probar esto y solo hice los siguientes pasos:

1. Crear un nuevo proyecto Swift

2. En Fases de compilación -> Enlace binario con bibliotecas, agrega mi biblioteca ( como tal )

3. Agregue un nuevo archivo de C ++ sin un archivo de encabezado y agregue un encabezado de puente con los siguientes contenidos:

//Wrapper.cpp

extern "C" void test() { //Just to test the swift - c++ connection later this file //shall import the main header of the library. }

// CAS Test-Bridging-Header.h

void test();

Pero ahora, cuando compilo, obtengo este error (también puede ver mi jerarquía de proyectos a la izquierda).

Gracias por toda tu ayuda por adelantado !


Para hacer que Xcode encuentre la biblioteca, tiene al menos dos opciones:

  1. Establezca las Rutas de búsqueda de biblioteca en Configuraciones de compilación. Esto puede ser complicado porque debe asegurarse de crear la biblioteca para la arquitectura correcta, por ejemplo, simulador o dispositivo real, y usar la ruta adecuada.

  2. Cree un nuevo espacio de trabajo, agregue el proyecto de la biblioteca y el proyecto de la aplicación al espacio de trabajo. En Fases de compilación para el objetivo de la aplicación, seleccione el archivo de la biblioteca estática (.a) en el cuadro de diálogo que aparece después de hacer clic en el signo + en la sección Enlace binario con bibliotecas. Xcode construirá la biblioteca para la arquitectura correcta y vinculará la aplicación con la lib estática correcta.

Ahora, crear la biblioteca para la arquitectura correcta puede ser complicado, independientemente de si elige la opción 1 o 2 anterior. Algunas cosas para probar:

  • Cree un proyecto de Sistema de compilación externo en Xcode y use el archivo MAKE que viene con el origen de la biblioteca. (Archivo -> Nuevo -> Proyecto ... -> Multiplataforma).
  • Cree un proyecto de biblioteca estática Cocoa Touch en Xcode. (Archivo -> Nuevo -> Proyecto ... -> iOS.) Deberá agregar los orígenes de la biblioteca al proyecto. Esta es probablemente su mejor apuesta si la construcción de la biblioteca no es demasiado compleja.

También existe la opción de incluir fuentes de bibliotecas C ++ directamente en su proyecto Swift.

Vea si esta publicación parece útil: compilando una biblioteca externa de C ++ para usar con el proyecto de iOS .