Hola a todos,
Hace poco publiqué un par de artículos (este y este otro) que hablaban sobre compilar un .cpp desde linea de comandos.
Hoy toca como se pueden compilar más ficheros y unirlos para generar un .exe
Lo único que hemos de hacer es decirle al compilador que no genere ningún .exe para luego poder llamar al linkador para que nos una los .obj. en un solo ejecutable.
Lo veréis mejor con un ejemplo:
prueba.cpp
#include <iostream>
#include "OtroArchivo.h"
int main()
{
std::cout << "Esto es una prueba de compiler de dos archivos" << std::endl;
FuncionDeOtroArchivo();
return 0;
}
OtroArchivo.h
void FuncionDeOtroArchivo(void);
OtroArchivo.cpp
#include <iostream>
void FuncionDeOtroArchivo(void)
{
std::cout << "Esto es la funcion del otro archivo" << std::endl;
}
compiler.bat
echo *********Seteando variables del sistema para Visual Studio**********************
call "c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
echo *******************************Compilando***************************************
cl /EHsc /c codesvn\prueba.cpp
cl /EHsc /c codesvn\OtroArchivo.cpp
link prueba.obj OtroArchivo.obj
echo ******************************Ejecutando****************************************
call prueba.exe
pause
Si os fijáis respecto a los otros ejemplos lo único que hemos hecho es decirle al compilador (cl) la opción /c (para que no genere el .exe) y luego hemos usado el comando link para linkar los .obj
Para que me sirve todo esto?
Por ahora para aprender :D, ya que es verdad que tiene relativa poca aplicación práctica, pero es la base para poder montar nuestro propio IDE de desarrollo, nuestro propio servidor de compilación, nuestro propio sistema de compilación distribuida , etc...
Espero que os haya gustado y que os animéis a probarlo.
Nos vemos
0 comentarios :
Publicar un comentario