Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicitÓ e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problemi con il preprocessore
Forum - C/C++ - Problemi con il preprocessore

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:41
Lunedý, 22/03/2010
Dato il seguente file header

Codice sorgente - presumibilmente C++

  1. #ifndef CLIENTSERVERCPP_H_
  2. #define CLIENTSERVERCPP_H_
  3.  
  4.         #include "SystemUtilCPP.h"
  5.         #include <winsock2.h>
  6.  
  7.         #define BUFFER_LENGTH 256
  8.         #define SEPARATOR '-'
  9.  
  10.         extern const char* SV_MSG_REMOTE_SHELL_CLOSED = "Shell remota chiusa correttamente";
  11.  
  12.         SOCKET initClientSocket(char *, int);
  13.         void manageRemoteShell(SOCKET, int);
  14.         SOCKET openServer(int);
  15.         void openRemtoteShell(SOCKET);
  16.         void setSocketRecvTimeOut(SOCKET, int, int);
  17.         void setSocketSendTimeOut(SOCKET, int, int);
  18.         SOCKET waitForClientConnection(SOCKET);
  19.         void waitRecv(SOCKET, char *, int, int);
  20.  
  21. #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?


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:48
Lunedý, 22/03/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Ó.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 11:55
Lunedý, 22/03/2010
ho riscritto il file header in questa maniera
Codice sorgente - presumibilmente C++

  1. #ifndef CLIENTSERVERCPP_H_
  2. #define CLIENTSERVERCPP_H_
  3.  
  4.         #include "SystemUtilCPP.h"
  5.         #include <winsock2.h>
  6.  
  7.         #define SERVER_SOCKET_OK 0
  8.         #define SERVER_SOCKET_ERROR 1
  9.  
  10.         #define BUFFER_LENGTH 256
  11.         #define SEPARATOR '-'
  12.  
  13.         const char* SV_MSG_REMOTE_SHELL_CLOSED = "Shell remota chiusa correttamente";
  14.  
  15.         SOCKET initClientSocket(char *, int);
  16.         void manageRemoteShell(SOCKET, int);
  17.         SOCKET openServer(int);
  18.         void openRemtoteShell(SOCKET);
  19.         void setSocketRecvTimeOut(SOCKET, int, int);
  20.         void setSocketSendTimeOut(SOCKET, int, int);
  21.         SOCKET waitForClientConnection(SOCKET);
  22.         void waitRecv(SOCKET, char *, int, int);
  23.  
  24. #endif



e inserito la riga
Codice sorgente - presumibilmente C/C++

  1. extern const char* SV_MSG_REMOTE_SHELL_CLOSED;




nel file .cpp dove ho incluso l'header, ma continua a darmi lo stesso errore


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 12:10
Lunedý, 22/03/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Ó.
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 12:15
Lunedý, 22/03/2010
Ah ecco :rofl:...  Ha funzionato


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 12:58
Lunedý, 22/03/2010

dai un pezzo alla volta te lo stiamo facendo noi il prog ;)


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 17:29
Lunedý, 22/03/2010
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


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 20:08
Lunedý, 22/03/2010

che lo si fa a fare se te lo fanno gli altri?


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
robrock80 (Normal User)
Pro


Messaggi: 143
Iscritto: 11/12/2006

Segnala al moderatore
Postato alle 21:19
Lunedý, 22/03/2010
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


Nel mondo ci sono 10 tipi di persone: quelle che capiscono il binario e quelle che non lo capiscono
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo