¿Es una forma de usar la función de lib estática, si no tengo archivo de encabezado, solo el archivo * .a, pero sé la firma de la función?Cómo usar la función de la biblioteca estática si no tengo el archivo de encabezado
Respuesta
Sí, si conoce la firma de la función
Sólo tiene que escribir la firma de la función antes de llamar a ella, como:
void f(int); //it is as if you've included a header file
//then call it
f(100);
Todo lo que necesita hacer es: vincular el slib.a
al programa.
Además, recuerde que, si la biblioteca estática está escrito en C y ha sido compilado con el compilador de C, entonces usted tiene que utilizar extern "C"
al escribir la firma de función (si se programa en C++), como:
extern "C" void f(int); //it is as if you've included a header file
//then call it
f(100);
Alternativamente, si usted tiene muchas funciones, a continuación, puede agruparlos juntos como:
extern "C"
{
void f(int);
void g(int, int);
void h(int, const char*);
}
Es posible que prefiera escribir todas las firmas de función en un espacio de nombres con el fin de evitar posibles colisiones de nombres-:
namespace capi
{
extern "C"
{
void f(int);
void g(int, int);
void h(int, const char*);
}
}
//use them as:
capi::f(100);
capi::g(100,200);
capi::h(100,200, "string");
Ahora se puede escribir todo esto en un archivo de cabecera para que usted podría incluir el archivo de cabecera en .cpp
archivos (como de costumbre), y llamar a la función (s) (como de costumbre).
Espero que ayude.
La manera más fácil: escriba la firma en un archivo de encabezado, inclúyalo y vincule con la biblioteca.
- 1. impedir la importación de la función de la biblioteca estática
- 2. Inicializando la matriz estática constante en el archivo de encabezado
- 3. Extracción de nombres de función de la biblioteca estática
- 4. Lectura del archivo .pch en la biblioteca estática
- 5. De la biblioteca estática MinGW (.a) a la biblioteca estática de Visual Studio (.lib)
- 6. ¿Sobrecarga de la función estática?
- 7. Cuándo poner la función C++ en el archivo de encabezado
- 8. Registro de objetos en la biblioteca estática
- 9. Xcode - cómo incluir la biblioteca c y el archivo de encabezado en el proyecto Cocoa?
- 10. Usar una biblioteca estática en Qt Creator
- 11. cargar dinámicamente la biblioteca estática?
- 12. ¿Cómo compilar ZBar SDK con el proyecto en lugar de usar la biblioteca estática?
- 13. Función estática no templada en la clase de plantilla
- 14. Definición de estructura en el archivo de encabezado de una biblioteca y diferencias de compilación
- 15. Cómo incluir biblioteca estática en el Makefile
- 16. ¿Cuál es la diferencia entre el archivo objeto y la biblioteca estática (archivo)?
- 17. Vinculación de una biblioteca compartida con una biblioteca estática: ¿la biblioteca estática debe compilarse de forma diferente que si una aplicación estuviera vinculándola?
- 18. Preservar la estructura del directorio del encabezado en Xcode para la biblioteca estática
- 19. Encabezados para mi biblioteca estática no encontrada
- 20. Error de vinculador al tener definida la función no en línea en el archivo de encabezado?
- 21. Cómo escribir/depurar Android.mk para la biblioteca estática de NDK?
- 22. Recursos en la biblioteca estática pregunta
- 23. inicializando una variable estática en el encabezado
- 24. Cómo ver la plataforma de compilación de un archivo de biblioteca estática
- 25. ¿Cómo usar la biblioteca de regexp-me?
- 26. PHP | ¿Por qué debería usar la función estática pública/privada estática en lugar de la función pública/privada?
- 27. Ocultar la definición de estructura en la biblioteca estática
- 28. La biblioteca incluye rutas con el mismo nombre de encabezado
- 29. función no estática frente a función estática y variable
- 30. ¿Cómo compilar una biblioteca estática usando el NDK de Android?
En otras palabras: escriba usted mismo el archivo de encabezado de la biblioteca. – sth