[c++] link errors met socket++ *

Pagina: 1
Acties:

  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 15-04 07:15
Ik heb problemen met socket++ en dan met name pipestream

Ik heb het vb ingetypt en gecompiled;
het vb:
C++:
1
2
3
4
5
6
7
8
9
10
11
#include <socket++/pipestream.h>

int main ()
{
    char buf[128];
    ipipestream p("/bin/date");

    p.getline (buf, 127);
    cout << buf << endl;
    return 0;
}

ik krijg geen compile fouten, maar zodra hij linkt krijg ik:
undefined reference to `ipipestream::ipipestream[in-charge](char const*)
Ik kan deze foutmelding niet plaatsen. Weet iemand wat er aan de hand kan zijn?

[ Voor 4% gewijzigd door elgringo op 05-12-2005 11:17 ]

if broken it is, fix it you should


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:53

.oisyn

Moderator Devschuur®

Demotivational Speaker

Standaard vraag: link je wel met de libraries?

En ik heb je topictitel maar even verduidelijkt.

[ Voor 37% gewijzigd door .oisyn op 05-12-2005 11:19 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • elgringo
  • Registratie: Januari 2001
  • Laatst online: 15-04 07:15
.oisyn schreef op maandag 05 december 2005 @ 11:18:
Standaard vraag: link je wel met de libraries?

En ik heb je topictitel maar even verduidelijkt.
Euh, volgens mij niet.... Ik dacht dat alleen de header includen voldoende was?

if broken it is, fix it you should


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 11:53

.oisyn

Moderator Devschuur®

Demotivational Speaker

Nee, dan weet de compiler alleen hoe de functies en de types eruit zien, maar de linker weet nog niet waar de daadwerkelijke implementatie is. De manual van socket++ beschrijft vast wel welke lib je mee moet linken, het zal waarschijnlijk iets als "-lsocket++" megeven als parameter naar gcc zijn.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

...kick

Ik heb hier hetzelfde probleem (met dezelfde code), maar ik heb de library wel meegegeven als parameter. Nu kom ik er ook net achter dat deze met g++ (versie 2.9) wel werkt maar niet met g++34.

Als ik met g++34 compileer/link krijg ik dit te zien:
code:
1
2
3
4
g++34 test.cpp -I /usr/local/include -L /usr/local/lib/ -lsocket++
/var/tmp//cc0shGin.o: In function `main':
/var/tmp//cc0shGin.o(.text+0x12c): undefined reference to `ipipestream::ipipestream(char const*)'
collect2: ld returned 1 exit status


Als ik dus g++ (versie 2.9) gebruik dan werkt het wel. Helaas kan ik deze niet gebruiken aangezien ik voor de mysqlpp library versie 3.0 of hoger moet gebruiken.
Volgens de homepage van socket++ (http://www.linuxhacker.at/socketxx) hoort het te werken met gcc3.4.

Heeft er iemand misschien een idee?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18-04 23:33
Volgens mij zitten er tussen V2 en V3 van GCC behoorlijk wat verschillen. Lijkt me dat je de socket++ libs eerst met V3 moet compileren.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

farlane schreef op vrijdag 06 januari 2006 @ 16:57:
Volgens mij zitten er tussen V2 en V3 van GCC behoorlijk wat verschillen. Lijkt me dat je de socket++ libs eerst met V3 moet compileren.
Bedankt voor je tip Farlane :)
Ik heb socket++ met versie 3.4 gecompileerd en mijn programma compileert nu wel goed.
Pagina: 1