I encontró ejemplos y puestos aestáticos del edificio C lib ++ para su uso con aplicación Objetivo-c en Xcode 4
- Crear un C lib estática ++ para su uso en una aplicación de
- C++ Crear un lib C Objetivo estática para usar en una aplicación Objective C.
Lo que no podía encontrar y he molestado un poco con Desde hace días, es la forma correcta de crear un C++ lib estática para su uso en una aplicación de Objective-C en XCode 4.
sólo quiero para utilizar el código muy simple para propósitos de prueba:
#include <iostream>
#include "myCppLib.h"
using namespace std;
extern "C" void show_the_world() {
cout << "Hello, world!\n";
}
compilo esto con ARMv6/ARMv7 objetivo, GCC 4.2 compilador, Vinculación 'C++ estándar biblioteca de tipos' como 'estática' y tienen "Símbolos ocultos por defecto" a SÍ, como se describe en la ayuda de Xcode para bibliotecas estáticas de C++.
Mi aplicación de Objective-C, que llama a los 'show_the_world' errores de función sobre el std ++ lib, que parece no estar incluido o no se hace referencia correctamente:
Undefined symbols for architecture armv6:
"std::ios_base::Init::~Init()", referenced from:
___tcf_0 in libmyCppLib_dev.a(myCppLib.o)
"std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
_show_the_world in libmyCppLib_dev.a(myCppLib.o)
"std::ios_base::Init::Init()", referenced from:
__static_initialization_and_destruction_0(int, int)in libmyCppLib_dev.a(myCppLib.o)
"std::cout", referenced from:
_show_the_world in libmyCppLib_dev.a(myCppLib.o)
ld: symbol(s) not found for architecture armv6
collect2: ld returned 1 exit status
Estoy seguro de que he compilado la biblioteca para la arquitectura correcta, por lo que debe haber algo mal en otro entorno o con mi código.
¡Cualquier ayuda es bienvenida!
Saludos, barreta
Este tema puede ayudar - http://stackoverflow.com/questions/376966/using-c-c-static-libraries-from-iphone-objectivec-apps. – Perception
Ya encontré esta publicación, pero debido a mi inglés "no tan bueno", no encontré la respuesta en esta publicación. Después de que me redireccionaras a esto, me tomé un poco más de tiempo, y ahora funciona :) El punto era incluir la biblioteca de std ++ en la compilación del proyecto objetivo-c resultante, también. Entonces, ¡muchas gracias! –
¡Felicitaciones por hacerlo! – Perception