lunes, 21 de enero de 2013

Compilar y linkar varios archivos por linea de comandos




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

LordPakusBlog




0 comentarios :

Publicar un comentario

Entradas populares