[RESOLVIDO]Configurar projeto C++ no eclipse  XML
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Autor Mensagem
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Estou tentando (já a um bom tempo) configurar um projeto c++ no eclipse, o projeto funciona para coisas básicas que não precisam de "arquivos headers" externos porém tenho de fazer um trabalho pra facul que usa o winsock.h e quando eu vou compilar o projeto o mesmo não acha os métodos.

O que eu já tentei fazer:
já fui nas propriedades do projeto e adicionei a pasta que contém o winsock.h Settings->Tool setting->GCC c++-> directories Não funcionou!
já fui nas propriedades do projeto e adicionei a lib winsock.h (com o .h e sem o .h) em Settings->Tool setting->MinGW libraries Não funcionou!

Estou usando eclipse ganymede, a última versão do CDT e o MinGW como compilador.
Os arquivos do projeto são:

Socket.h

Sockets.cpp

Main.cpp


O engraçado é que dando um ctrl + espaço o eclipse acha as funções que estão em winsock.h, o problema ocorre quando eu vou compilar o arquivo.

Eis o log de erros ao tentar compilar o aquivo:
**** Build of configuration Debug for project Trocar Arquivo Socket ****

**** Internal Builder is used for build ****
g++ -O0 -g3 -Wall -c -fmessage-length=0 -osrc\Sockets.o ..\src\Sockets.cpp
..\src\Sockets.cpp: In function 'void SendMessageIP(SOCKET, char*, int)':
..\src\Sockets.cpp:82: warning: unused variable 'result'
g++ -oTrocarArquivoSocket.exe src\Sockets.o src\Main.o
src\Sockets.o: In function `_Z11CloseSocketj':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:243: undefined reference to `_closesocket@4'
src\Sockets.o: In function `_Z17AcceptNewClientIPjRj':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:204: undefined reference to `_accept@12'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:207: undefined reference to `_closesocket@4'
src\Sockets.o: In function `_Z14CreateServerIPt':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:148: undefined reference to `_WSAStartup@8'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:162: undefined reference to `_gethostname@8'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:167: undefined reference to `_gethostbyname@4'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:172: undefined reference to `_socket@12'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:177: undefined reference to `_htons@4'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:180: undefined reference to `_bind@12'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:181: undefined reference to `_closesocket@4'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:185: undefined reference to `_listen@8'
src\Sockets.o: In function `_Z11IsThereAMsgj':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:119: undefined reference to `_select@20'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:120: undefined reference to `___WSAFDIsSet@8'
src\Sockets.o: In function `_Z16ReceiveMessageIPjPci':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:97: undefined reference to `_recv@16'
src\Sockets.o: In function `_Z13SendMessageIPjPci':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:82: undefined reference to `_send@16'
src\Sockets.o: In function `_Z20ConnectToTheServerIPPct':
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:28: undefined reference to `_WSAStartup@8'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:42: undefined reference to `_gethostname@8'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:47: undefined reference to `_gethostbyname@4'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:55: undefined reference to `_htons@4'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:58: undefined reference to `_socket@12'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:63: undefined reference to `_connect@12'
D:\workspace\Eclipse\Programação de Software Básico\Trocar Arquivo Socket\Debug/../src/Sockets.cpp:64: undefined reference to `_closesocket@4'
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 2234 ms.

This message was edited 1 time. Last update was at 16/10/2008 14:26:26


Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

Hum... sou completamente ignorante quanto ao MinGW, então eu gostaria de saber se podemos usar arquivos .lib (formato Microsoft) ou se só podemos usar arquivos .a (formato Unix/Linux) para poder termos acesso às funções do Winsock. No caso acho que - se fosse Microsoft - os métodos de Winsock.h estariam em wsock2_32.lib ou coisa parecida.

Se não me engano, você tem de usar tanto o Winsock.h quanto algum arquivo .a que deve vir com a distribuição do MinGW, não aquele do MS Platform SDK. Mas isso é apenas um chute e realmente não sei o que é que devemos fazer.
[WWW]
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Muito obrigo thingol!!!!

Realmente eu tinha que importar um arquivo .a que é o libwsock32.a
Tem que colocar apenas wsock32 (tem que tirar o lib e o .a) e:
Settings->Tool setting->MinGW->libraries

flw!!

Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
RenatoL1962
Smalltalk

Membro desde: 19/12/2008 12:27:26
Mensagens: 1
Offline

Ola Ivo, estou com o mesmo problema que vc teve com socket, CDT e MinGw, mas não entendi como vc resolveu, sou novo no eclipse.
Obrigado.
 
Índice dos Fóruns » Ferramentas, Frameworks e Utilitários
Ir para:   
Powered by JForum 2.1.8 © JForum Team