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

qh3pk

Microsoft Visual Studio 2005 - Problema

8 mensagens neste tópico

boas...

então é o seguinte..

estou a usar o Microsoft Visual studio 2005 como compilador para C. Criei um projecto com o nome "Projecto C" em empty file.. nos sources files criei um item "teste1.c"... fiz um simples programa e compilou tudo bem.. ao criar outro source file "teste2.c" simplesmente já nehum dos sources files vai compilar. dá dois erros e só funciona se eu eliminar um deles..

os erros sao os seguintes:

Error 1 error LNK2005: _main already defined in teste1.obj teste2.obj

Error 2 fatal error LNK1169: one or more multiply defined symbols found E:\Projectos Visual Studio 2005 - C\Projecto C\Debug\Projecto C.exe 1

o que posso fazer para resolver o problema?

desde já muito obrigado!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim vai ser so erros...tipo nao percebo..se é um projecto e varios source files...nao percebo porque nao funciona:S

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tipicamente só defines a função main apenas num ficheiro fonte (ou source file). Esta é a função principal em que se inicia o fluxo de execução dos teus programas e como tal não pode estar definida noutro source file dentro do mesmo projecto.

Exemplo:

ficheiro source1.c:

#include<stdio.h>

/* prototipos das funcoes */
void call1(void);
extern void call2(void);

void call1(void)
{
printf("passed by call1\n");
}

int main(void)
{
printf("going to call function call1\n");
call1();
printf("going to call external function call2\n");
call2();

return 0;
}

ficheiro source2.c:

#include<stdio.h>

/* prototipos das funcoes */
extern void call1(void);
void call2(void);

void call2()
{
printf("passed by call2\n");
}

Ao executar o binário gerado pela compilação destes 2 ficheiros fonte temos isto:

going to call function call1
passed by call1
going to call external function call2
passed by call2

Espero que este exemplo muito simples ajude  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

assim vai ser so erros...tipo nao percebo..se é um projecto e varios source files...nao percebo porque nao funciona:S

Como é que vais ter um só projecto com duas main?

Para mim o maior problema do MS VC++ é mesmo esse.... O mais pequeno Hello World precisa de ser um projecto para ser compilado..........

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para mim o maior problema do MS VC++ é mesmo esse.... O mais pequeno Hello World precisa de ser um projecto para ser compilado..........

Também é um aspecto que nunca gostei na maioria dos IDEs. Quando andei a dar uns toques em C# a solução foi utilizador o compilador através da linha de comandos.

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