Compilar un programa en c++

Bueno sres, ando estressado intentando compilar un programa de c++ a un .exe
Al final lo conseguí peor la gente no lo puede usar pq els faltan bibliotecas :/

Alguien sabe cómo podría hacerlo para que el .exe fuese independiente???
Siendo un .exe lo que compilas, por tanto windows, entorno NO-LIBRE... usas algun compilador libre para ello, o algo?

Si la respuesta es no, foro equivocado.
No, estoy programando con Visual studio 2005 mirad os pego el cçodigo del programa ;)

Es un conversor de Deicmal, binario y hexadecimal

Cual es el foro adecuado? :S

#include <iostream>
#include <math.h>
#include <conio.h>
#include <string>
using namespace std;



void binario_decimal();
void decimal_binario();
int binario(int num);
void decimal_hexadecimal();
void hexadecimal_decimal();
int exp ( int largo , int base, string numero );
void main()
{
   int opcion;
   //menu
   do
   {
      system("cls");
      cout<<"------------CONVERSOR------------"<<endl;
      cout<<"1) Binario-decimal."<<endl;
      cout<<"2) Decimal-binario."<<endl;
      cout<<"3) Hexadecimal-decimal."<<endl;
      cout<<"4) Decimal-hexadecimal."<<endl;
      cout<<"5) Salir."<<endl;
      cout <<"---------------------------------" << endl;
      cout << "Introduce la opcion: " << endl;
      cin>>opcion;

      switch (opcion)
      {
      case 1:
         binario_decimal();
         break;
      case 2:
         decimal_binario();
         break;
      case 3:
         hexadecimal_decimal();
         break;
      case 4:
         decimal_hexadecimal();
         break;
      case 5:
         cout<<"Fin del programa."<<endl;
         break;
      default:
         cout<<"Opcion incorrecta, pruebe otra vez."<<endl;
         break;
      }

   }while(opcion!=5);
}


void hexadecimal_decimal()
{
   int numhexa;

   printf("Introduce un numero hexadecimal: ");

   //Introducimos un número en formato hexadecimal

   scanf("%x",&numhexa);

   printf("En decimal es %d \n",numhexa);
   getchar();

   system("pause");
}

void decimal_hexadecimal()
{
   int numero;
   cout<<"Introducir numero decimal para pasarlo a hexadecimal: ";
   cin>>numero;
   cout << hex << numero << endl;
   system("pause");
}


void decimal_binario()
{
   int decimal;
   char binario[30];

   cout<<"Decimal: ";
   cin>>decimal;
   itoa (decimal, binario, 2);
   cout<<endl<<"Binario: "<<binario<<endl;
   system("pause");
}

void binario_decimal()
{

   char binario[10];
   int i, exp, numero;
   double exponente, resultado=0;//Como enteros no podemos usar funcion pow
   bool error;

   //Mientras exista error en el numero introducido sigue pidiendo numero
   do
   {
      i=0;//Inicializamos indice para recorrer el array
      error=false;
      cout<<"Introduce el numero en binario: "<<endl;
      cin>>binario;

      //Recorremos el array en busca de errores (numero no en binario)
      while ((error==false)&&(binario[i]!='\0'))
      {
         if ((binario[i]!='0')&&(binario[i]!='1'))
         {
            error=true;
         }
         else
         {
            i++;
         }
      }
   }while(error==true);

   //Decrementamos en uno el indice para situarnos en la ultima cifra introducida
   //Sin decrementar estara apuntando al caracter nulo final del array
   i--;
   //Conservamos el valor del indice para usarlo en el exponente para calcular el decimal
   exp=i;

   while (i>=0)
   {
      //Pasa el caracter '1' a entero como 49 y el '0' como 48 por eso restamos 48
      //para que el paso a entero sea correcto
      numero=(binario[i]-48);
      //Calculamos el exponente a usar en la formula a partir del numero de cifras
      //introducido(variable exp) y el indice del numero a pasar a decimal(variable i)
      exponente=(exp-i);
      //Formula: Ej. 101 binario es= 1x2exp2 + 0x2exp1 + 1x2exp0
      resultado=(resultado+(numero*(pow(2,exponente))));
      i--;
   }

   cout<<"El numero en decimal es: "<<resultado<<endl;
   system ("pause");
}


^^
Lo dicho, foro equivocado XD
El soft que usas, y la plataforma para la que compilas, no podrian ser menos libres, y mas restrictivos...
Pero dónde lo posteo ?¿

o lo puse aquí pq si alguien me pide el código se lod oy :P

Libre :/
Saludos,

Yo soy un aprendiz de C, pero hasta donde sé hay compiladores mixtos. Uno de ellos es el Turbo C 3.0, yo cuando programo algo con él, al crear el fichero exe, incluye la información necesaria de las librerias y me deja ejecutarlo, genera el exe y cuando salgo del programa puedo ejecutar cada uno por su cuenta.

Espero que te haya servido.

Nota: vale para C y C++
Ese codigo no es ANSI C

No creo que necesites conio.h, y quitaria ese itoa de ahi
Ese codigo no es ANSI C


Claro que no, es un C++ un poco feo :)

- ferdy
Jajaja que fallo, me referia a que itoa no era parte de C++

Ha sido el conio.h que me ha descolocado [uzi]
8 respuestas