He estado usando agvtool
para una de mis aplicaciones de iPhone por principio general, y recientemente encontré una razón por la que deseo poder verificar la variable de versión (para poder volver a copiar el contenido de la ayuda en el directorio de Documentos, si está desactualizado). La variable, MyAppVersionNumber
, definida en MyApp_vers.c, se genera automáticamente durante la compilación. Se genera en un archivo .o y aparece en (¿la versión anterior?) De la aplicación vinculada. Hasta ahora todo bien, parece.
Así que ahora he declarado una extern double MyAppVersionNumber
en el archivo .m
donde tengo que usar esto (y tratar de usarlo, simplemente en una declaración NSLog
para empezar más tarde), y trato de construir para el simulador de iPhone, y obtener un error de enlace:
"_MyAppVersionNumber", referenced from:
_MyAppVersionNumber$non_lazy_ptr in HelpViewController.o
(maybe you meant: _MyAppVersionNumber$non_lazy_ptr)
ld: symbol(s) not found
collect2: ld returned 1 exit status
Entonces, ¿qué tengo que hacer de otra manera para que esto se enlace?
Busqué en Google $ non_lazy_ptr y agvtool, y no obtuve nada en absoluto, y por solo $ non_lazy_ptr, que dio algunas cosas, pero sobre todo se aplica a las bibliotecas, que esto no es realmente (¿verdad?). Y en mis excavaciones hasta el momento, todavía tengo que mostrar una página sobre agvtool que realmente habla con detalle sobre el uso de las variables, las que he leído dicen casualmente para declarar una variable externa, que he hecho .
¿Alguien familiarizado con esto y/o capaz de ayudarnos?
Gracias!
Hmmm ... estado haciendo más googlear, y probar cosas diferentes, y me encontré con esto: Si pongo la instrucción extern y la referencia ambas en 'main.m', funciona bien. Sin embargo, usarlo en mi clase de controlador de vista no funciona ... ¿Hay algún problema con tener una variable externa accesible a través de una clase (como se define en '@ interface' y' @ implementation')? He intentado ponerlo en '@ interface', que falla con' error: specifier-calificador-list esperado antes 'extern'', y en varios otros lugares en mi '.h' y' .m' (otra vez $ non_lazy_ptr error de enlace). ¿Cómo obtengo acceso a través de mi clase? – lindes
Nota: He encontrado una manera de resolver mi problema original (que implica asegurarse de que mi visor de Ayuda vea el contenido más reciente): No lo copie en Documentos (es de solo lectura, por lo que no es obligatorio). Aún así, sería bueno saber qué estaba pasando, en caso de que alguna vez quiera esta variable por otros motivos. – lindes
Lo siento, no pude entender su pregunta, borré la respuesta. –