Tengo varios archivos .c y un archivo de objeto .a. ¿Qué comando con gcc debería usar para compilarlos en un archivo exe? Si usamos un archivo MAKE, ¿cómo se verá?comando para compilar archivos c con archivos .a
Respuesta
El archivo .a es una biblioteca, ya compilada. Usted compila su archivo .c a .o, luego usa el enlazador para vincular su .o con .a para producir un ejecutable.
Para los casos simples es probable que pueda hacer esto:
gcc -o maybe.exe useful.a something.c
Makefile para proyectos no triviales generalmente primero invocar gcc para compilar cada archivo .c a un objeto .o.
gcc -c something.c
Luego invocar el enlazador (en estos días a menudo se utiliza gcc como un contenedor para ello) con una lista de archivos .o y .a para enlazar en un archivo ejecutable de salida.
gcc -o maybe.exe useful.a something.o
Tenga en cuenta también que la mayoría de las bibliotecas instaladas, es típico que no especifica explícitamente el archivo .a pero en lugar de decir -lhandy que sería la abreviatura de "tratar de encontrar algo que se llama en el libhandy.a configurado (o especificada con -L) directorios de búsqueda"
Gracias a anonymous para detectar el error en la generación del archivo de objeto –
*.a
es una biblioteca estática y no dinámica (*.dll
en ventanas y *.so
en linux)
gcc -L<here comes the library path> -l<library name>
por ejemplo, para el archivo que tiene lib .a en el actual camino que debe utilizar:
gcc *.c -L. -lname -o myprogram.o
del man (gcc poner al hombre en la línea de comandos shell)
Usted puede mezclar opciones y otros argumentos. En su mayor parte, el orden que utiliza no importa. El pedido importa cuando usa varias opciones del mismo tipo; por ejemplo, si especifica -L más de una vez, los directorios se buscan en el orden especificado. Además, la ubicación de la opción -l es significativa.
- 1. fichero Make: compilar todos los archivos .cpp a .o archivos
- 2. Práctica recomendada para compilar rutas de archivos en C#
- 3. ¿Cómo compilar diferentes archivos c con diferentes CFLAGS usando Makefile?
- 4. ¿Puede CMake usar g ++ para compilar archivos C?
- 5. Usando G ++ para compilar múltiples archivos .cpp y .h
- 6. .o archivos vs .a archivos
- 7. ¿Cómo controlo los archivos para compilar con git?
- 8. ¿Puedo configurar pydev para compilar automáticamente archivos cython?
- 9. Generando archivos intermedios .i (archivos preprocesados) al compilar Ubuntu-8.04
- 10. Comando MYSQL para ejecutar varios archivos .sql
- 11. Bash comando para mover solo algunos archivos?
- 12. Comando Emacs para buscar en archivos
- 13. Comando UNIX para listar carpetas con conteos de archivos
- 14. Qué archivos están realmente incluidos al compilar
- 15. comando bash para copiar archivos de una computadora a otra
- 16. Plugin de Eclipse para compilar automáticamente archivos Sass
- 17. cómo organizar un Makefile para compilar un módulo del núcleo con múltiples archivos .c?
- 18. Compila múltiples archivos C con make
- 19. ¿Cómo puedo compilar archivos C autogenerados en preconstrucción?
- 20. incluyendo archivos de cabecera en C y compilar
- 21. Compilar C++ con Cygwin
- 22. Código :: Bloques: cómo compilar varios archivos fuente
- 23. Ejecutar comando jar excluir archivos
- 24. TransactionScope con archivos en C#
- 25. Grails shell no vuelve a compilar archivos modificados
- 26. ¿Cómo comodín incluyen archivos JAR al compilar?
- 27. Compilar diferentes archivos para dispositivo/simulador en XCode
- 28. Cómo generar archivos de código fuente y compilar con Gradle
- 29. ¿Cuál es la ruta predeterminada para incluir archivos del sistema OSX al compilar una aplicación C++?
- 30. Comando de shell para dividir archivos grandes en 10 archivos más pequeños
No contesta la pregunta sobre * cómo * hacerlo. No dice "cómo se verá". – mtahmed