robrock80 (Normal User)
Pro
Messaggi: 143
Iscritto: 11/12/2006
|
Dato il seguente file header
Codice sorgente - presumibilmente C++ |
#ifndef CLIENTSERVERCPP_H_ #define CLIENTSERVERCPP_H_ #include "SystemUtilCPP.h" #include <winsock2.h> #define BUFFER_LENGTH 256 #define SEPARATOR '-' extern const char* SV_MSG_REMOTE_SHELL_CLOSED = "Shell remota chiusa correttamente"; SOCKET initClientSocket(char *, int); void manageRemoteShell(SOCKET, int); SOCKET openServer(int); void openRemtoteShell(SOCKET); void setSocketRecvTimeOut(SOCKET, int, int); void setSocketSendTimeOut(SOCKET, int, int); SOCKET waitForClientConnection(SOCKET); void waitRecv(SOCKET, char *, int, int); #endif
|
quando lo includo in più file .cpp il compilatore mi genera il seguente errore
g++ -IC:\Workspaces\Eclipse\C-C++\MY-SHARED-LIBRARY\src -O0 -g3 -Wall -c -fmessage-length=0 -osrc\Client.o ..\src\Client.cpp
g++ -LC:\Workspaces\Eclipse\C-C++\MY-SHARED-LIBRARY\Debug -oclient.exe src\Client.o -lMyShared -lws2_32
C:\Workspaces\Eclipse\C-C++\MY-SHARED-LIBRARY\Debug/libMyShared.a(ClientServerCPP.o): In function `ZSt3minIjERKT_S2_S2_':
C:/Workspaces/Eclipse/C-C++/MY-SHARED-LIBRARY/Debug/../src/ClientServerCPP.cpp .data+0x0): multiple definition of `SV_MSG_REMOTE_SHELL_CLOSED'
src\Client.o:C:/Shared/Programmi_portabili/Eclipse-CDT/mingw/bin/../lib/gcc/mingw32/3.4.5/../../../../include/c++/3.4.5/bits/locale_facets.tcc:2497: first defined here
collect2: ld returned 1 exit status
Build error occurred, build is stopped
Time consumed: 1360 ms.
Qualcuno riesce a capire dov'è il problema?
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Solo in un .cpp devi scrivere
const char* SV_MSG_REMOTE_SHELL_CLOSED = "Shell remota chiusa correttamente";
e negli altri
extern const char* SV_MSG_REMOTE_SHELL_CLOSED;
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
robrock80 (Normal User)
Pro
Messaggi: 143
Iscritto: 11/12/2006
|
ho riscritto il file header in questa maniera
Codice sorgente - presumibilmente C++ |
#ifndef CLIENTSERVERCPP_H_ #define CLIENTSERVERCPP_H_ #include "SystemUtilCPP.h" #include <winsock2.h> #define SERVER_SOCKET_OK 0 #define SERVER_SOCKET_ERROR 1 #define BUFFER_LENGTH 256 #define SEPARATOR '-' const char* SV_MSG_REMOTE_SHELL_CLOSED = "Shell remota chiusa correttamente"; SOCKET initClientSocket(char *, int); void manageRemoteShell(SOCKET, int); SOCKET openServer(int); void openRemtoteShell(SOCKET); void setSocketRecvTimeOut(SOCKET, int, int); void setSocketSendTimeOut(SOCKET, int, int); SOCKET waitForClientConnection(SOCKET); void waitRecv(SOCKET, char *, int, int); #endif
|
e inserito la riga
Codice sorgente - presumibilmente C/C++ |
extern const char* SV_MSG_REMOTE_SHELL_CLOSED;
|
nel file .cpp dove ho incluso l'header, ma continua a darmi lo stesso errore |
|
nessuno (Normal User)
Guru^2
Messaggi: 6402
Iscritto: 03/01/2010
|
Dovevi fare esattamente l'opposto ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
robrock80 (Normal User)
Pro
Messaggi: 143
Iscritto: 11/12/2006
|
Ah ecco ... Ha funzionato
|
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
dai un pezzo alla volta te lo stiamo facendo noi il prog
|
|
robrock80 (Normal User)
Pro
Messaggi: 143
Iscritto: 11/12/2006
|
Vi ringrazio molto per l'aiuto che mi date, ma credetemi, è veramente difficile programmare con le api di windows con solo 3 settimane di programmazione in C alle spalle. Si lo sò che all'inizio si dovrebbero fare cose più semplici, ma sono noiose e come dice Linus Torvalds:"Che lo fai a fare se non è divertente???"
Ultima modifica effettuata da robrock80 il 22/03/2010 alle 17:30 |
|
HeDo (Founder Member)
Guru^2
Messaggi: 2765
Iscritto: 21/09/2007
|
che lo si fa a fare se te lo fanno gli altri?
|
|
robrock80 (Normal User)
Pro
Messaggi: 143
Iscritto: 11/12/2006
|
Fanno gli altri??? Per qualche aiuto qua e là addirittura arrivi a dire che più di 2000 righe di codice (e parlo di funzioni riutilizzabili) le hanno scritte gli altri??? E' veramente assurdo: un moderatore che provoca, ancora più assurdo. Senti, te lo dico sinceramente: faccio a meno del tuo aiuto, ma smettila di rispondere ai miei post
Ultima modifica effettuata da robrock80 il 22/03/2010 alle 21:29 |
|