Jump to content
Fórum Script Brasil
  • 0

Desenvolver em C++ no Linux para o Windows


RHER

Question

É possível criar um programa compilado no g++ (de preferência versões mais novas) destinado a rodar no Windows sem a necessidade de simuladores do Linux como MinGW e Cygwin? Eu queria desenvolver programas com o g++, meu compilador favorito, mas para servir a usuários comuns do Windows (XP/7) sem a necessidade de preocupações com dll e outras coisas. Alguém sabe como posso fazer isso se for realmente possível?

Comentando um pouco mais, parece que o pessoal da GNU que fez o g++ trabalha muito mais por um compilador potente em otimização. O pessoal que criou o ambiente de programação no windows só quer dinheiro, não qualidade, sendo assim um trabalho inferior. Portanto, não gosto do Visual Studio. O problema é que se o pessoal da GNU não chegou a fazer algo que permita criar programas para windows, terei que me virar com o VS pra fazer programas para WinXP e Win7.

Se alguém puder me ajudar, agradeço.

Valeu!!! Falou!!!

Edited by RHER
Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0
É possível criar um programa compilado no g++ (de preferência versões mais novas) destinado a rodar no Windows sem a necessidade de simuladores do Linux como MinGW e Cygwin? Eu queria desenvolver programas com o g++, meu compilador favorito, mas para servir a usuários comuns do Windows (XP/7) sem a necessidade de preocupações com dll e outras coisas. Alguém sabe como posso fazer isso se for realmente possível?

Comentando um pouco mais, parece que o pessoal da GNU que fez o g++ trabalha muito mais por um compilador potente em otimização. O pessoal que criou o ambiente de programação no windows só quer dinheiro, não qualidade, sendo assim um trabalho inferior. Portanto, não gosto do Visual Studio. O problema é que se o pessoal da GNU não chegou a fazer algo que permita criar programas para windows, terei que me virar com o VS pra fazer programas para WinXP e Win7.

Se alguém puder me ajudar, agradeço.

Valeu!!! Falou!!!

Isso que tu está tentando é impossível.

Não tem como o linux gerar um arquivo binário para windows. O wine talvez consiga.

O MinGW é o compilador g++ para windows. A única diferença é que ele gera o executável e as dll's de windows mas o compilador possui e mesma qualidade do g++.

Tu pode desenvolver em linux e depois apenas compilar no windows. Só que tu precisa cuidar as funções de cada sistema operacional.

Recentemente eu fiz uns testes sobre trechos de código para cada sistema operacional no mesmo código.

Aqui está o exemplo que eu fiz. Espero que ajude.

#include <stdio.h>
#ifdef _WIN32 || _WIN64
   #include <conio.h>

//Lembrei que não existe getch no linux
#elif defined __linux__ || __APPLE__
    //includes para a getch no linux
    #include <termios.h>
    #include <unistd.h>
    //Getch no linux
    int getch(void){
        struct termios velho, novo;
        int x;

        tcgetattr( STDIN_FILENO, &velho );
        novo= velho;
        novo.c_lflag &= ~( ICANON | ECHO );
        tcsetattr( STDIN_FILENO, TCSANOW, &novo );
        x= getchar();
        tcsetattr( STDIN_FILENO, TCSANOW, &velho );
        return x;
        }
#else
//#Plataforma não suportada
#endif

int main(){
    printf("Program ");
    //windows 32
    #ifdef _WIN32
        printf(" windows 32");
        #ifdef __GNUC__
            printf(" minGW");
        #endif
        #ifdef _MSC_VER
            printf(" VisualC");
        #endif
    #endif

    //windows 64
    #ifdef _WIN64
        printf(" windows 64");
        #ifdef __GNUC__
            printf(" minGW");
        #endif
        #ifdef _MSC_VER
            printf(" VisualC");
        #endif
    #endif

    //Linux
    #ifdef __linux__
        printf(" linux");
        #ifdef __GNUC__
            printf(" GCC");
        #endif
    #endif

    //MacOS
    #ifdef __APPLE__
        printf(" MacOS");
        #ifdef __GNUC__
            printf(" GCC");
        #endif
    #endif

    getch();

    #ifdef __APPLE__
        printf("\n");
    #endif

    return 0;
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...