• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Bruno

Portabilidade do código de Win para Linux

23 mensagens neste tópico

Na sequencia deste tópico: Que sistema operativo tens por default? achei por bem criar este para não tornar o outro mais offtopic!

vbmaster falaste nas libs iostream, ctype, iomanip que usas em windows... sabes se estas bibliotecas não funcionam em linux? Se não funcionarem diz aí o que elas fazem q possivelmente há alguma equivalente em linux :P

Acho q é bom falarmos destes casos... pois o código deve ser portável para qualquer SO. Obviamente se envolver graficos é mais complicado! :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, se eles funcionam ou não não sei...

Mas realmente seria um grande passo para mim poder programar c++ em linux. Se os IDE's existentes para este SO já trouxerem estas lib's, então não há qualquer problema.

Another thing, o nosso programa compilado em linux vem em que tipo de ficheiro? Decerto que não é .exe, pois não?

Fica bem :D;):P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Geralmente é um ficheiro sem extenção (é o mais simples)! :D

Querias dizer problema na tua 2ª linha, certo? (se mudares eu depois tiro isto)

Epá mm sem IDE's n custa explorar 5 minutos e meteres isso a bombar :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas como executo e vejo os resultados de um qualquer meu programa num ficheiro sem extensão....nesse caso é apenas um ficheiro de texto.

Além disso, terá o gcc as libs que necessito?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Antes de tudo o g++ é o indicado para C++ (o gcc é para C)... se n tiver é facil incluires :P

Tenta fazer um hello world... (usa um editor de texto normal...por exemplo o emacs)

Em seguida fazes g++ -o executavel <nome/path_do_file_de_texto>

Depois: ./executavel

Qq duvida/problema diz! :D

--- EDIT ---

Não te esqueças de instalar o necessário: "apt-get install build-essential" (no caso do ubuntu)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sabes que mais...acabei de instalar o g++ por synaptic e tou espantado...fiz um hello world e estava à espera que desse erros, por exemplo no 'using namespace std;' mas tudo deu mais que correcto.

Sim senhor, thanks Bruno, c++ vai começar a rullar aqui em linux... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais um convertido :P Ehheh

Muitos esqueçem-se q os compiladores que usam em Windows foram feitos pela GNU :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu disse :D Por acaso instalei isso pelo Automatix (recomendo mesmo) que é um instalador gráfico de programas para os sistemas novos ou seja instala todos os must-have que o ubuntu não trás já :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu disse :D Por acaso instalei isso pelo Automatix (recomendo mesmo) que é um instalador gráfico de programas para os sistemas novos ou seja instala todos os must-have que o ubuntu não trás já :D

Mas segundo tenho lido, o Automatix apenas funciona em Kubuntu certo? (Ubuntu com KDE instalado....). Há que salientar o trabalho do programador que desenvolveu o Automatix. É um programador que participa em muitas discussões do forum oficial do Ubuntu e incluvé o lançamento do programa foi feito no forum.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, eu instalei por apt. e depois itve de andar a sacar a versão mais recente do glib, do autoexec do automake e de mais umas cenas... e ainda dá um erro num generic project...acho eu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Nop... a version normal é para Ubuntu (com gnome) para Kubuntu existe uma version especial do Automatix :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

recentemente fiz um projecto em VC++ que dps tive de portar para gcc correndo em cygwin. tudo correu às mil maravilhas com excepção dos comentarios // que como não são ANSI o gcc não aceitou e mais complicado de resolver foram os pipes, pq o windows para um enter recebe um \n e o unix um \n e um line feed.

no entanto acho q foi falta de conhecimento meu, pois deve de haver qq forma de colocar essas contantes de forma a que o compilador faça esse trabalho

joao

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

recentemente fiz um projecto em VC++ que dps tive de portar para gcc correndo em cygwin. tudo correu às mil maravilhas com excepção dos comentarios // que como não são ANSI o gcc não aceitou e mais complicado de resolver foram os pipes, pq o windows para um enter recebe um \n e o unix um \n e um line feed.

no entanto acho q foi falta de conhecimento meu, pois deve de haver qq forma de colocar essas contantes de forma a que o compilador faça esse trabalho

joao

para c++ usa-se o g++ e não o gcc...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

recentemente fiz um projecto em VC++ que dps tive de portar para gcc correndo em cygwin. tudo correu às mil maravilhas com excepção dos comentarios // que como não são ANSI o gcc não aceitou

os comentarios em C sao -> /* */  e em C++ // por isso tv como usaste 1 compilador de C, te tenha dado erro...nao?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o projecto era C, mas como soh tinha o VC++ usei o q tinha.. dps tive de refazer algumas cenas mas... deu pó 18 :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para quem nao sabe C++ do .NET e 96% standartizado, enquanto o C++ windows stand-alone e so 80 e picos...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Um problema que apanho sempre que quero compilar com o g++ código que desenvolvi anteriormente em Visual C++, prende-se com o scope da variável de controlo num ciclo for.

Por exemplo:

for(int i = 0; i < 10; i++) { }

No g++ a variável i tem scope apenas dentro das { } do ciclo for. No Visual C++ a variável i continua com scope no resto do programa. Se por acaso declaro outro inteiro i o compilador queixa-se...

Alguém conhece uma solução simples para este problema?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pah...

declaras a varivável como universal e depois no for fazes só for (i = 0; i < 10; ++i) {}

assim a variável no for será sempre utilizada correctamente, e poderás usá-la também fora.... 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é o que faço normalmente  :thumbsup:

Mas em programas com milhares de linhas em que os indíces são usados intensivamente na computação (e não apenas para controlo de fluxo) essa não é uma solução prática.

Eu queria saber se existe um comando ou uma opção dos compiladores que permitisse alterar a maneira como o scope de i é definido.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

para c++ usa-se o g++ e não o gcc...

um dias às-de chegar à conclusão q são a mesma coisa :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

boas,

recentemente fiz um projecto em VC++ que dps tive de portar para gcc correndo em cygwin. tudo correu às mil maravilhas com excepção dos comentarios // que como não são ANSI o gcc não aceitou

os comentarios em C sao -> /* */  e em C++ // por isso tv como usaste 1 compilador de C, te tenha dado erro...nao?

sim, tens razão! julgo q na altura usei o gcc e forcei a compilação em C Ansi ou qq coisa assim. não era bem isso q eu queria dizer...

o q ia mesmo dizer é q o windows/dos usa a combinação CRLF enquanto no linux apenas LF e tb foi necessario rever isso...

já agora, tb costumo usar o cygwin (com um patch para o putty) quando quero trabalhar com o gcc

cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas em programas com milhares de linhas em que os indíces são usados intensivamente na computação (e não apenas para controlo de fluxo) essa não é uma solução prática.

Eu queria saber se existe um comando ou uma opção dos compiladores que permitisse alterar a maneira como o scope de i é definido.

que eu saiba n existe nenhuma opção para alterar o scope das variaveis, mas posso estar errado... acho estranho o vc++ ter um scope diferente mas sei q outros compiladores da ms funcionam como dizes...

no entanto, se tens uma função com "milhares de linhas" (se percebi bem) devias reformular um pc o teu codigo 8)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora