/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
mysql++
Fra : jma


Dato : 18-05-06 17:41

Hej NG,

Jeg har problemer med at få mysql++ til at spille på mit system. Dvs.
problemer med at bruge det.

Jeg forsøger mig med dette eksempel:
http://tangentsoft.net/mysql++/doc/userman/html/tutorial.html#id2860223

Jeg kompilere således:
g++ -Wall -g -o ./test.run simple1.cpp -L/usr/lib/mysql -I
/usr/local/include/mysql++/ -I /usr/include/mysql/

men får en række fejl:
g++ -Wall -g -o ./simple1.run simple1.cpp -I /usr/local/include/mysql++/ -I /usr/include/mysql/
/tmp/ccEyEGse.o(.text+0x7b): In function `main':
/opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:41: undefined reference to `mysqlpp::Connection::Connection(bool)'
/tmp/ccEyEGse.o(.text+0x92):/opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:42:
undefined reference to `connect_to_db(int, char**, mysqlpp::Connection&,
char const*)'

Jeg forstår ikke at løse problemet med "undefined reference to
`mysqlpp::Connection::Connection(bool)'" - måske der er problem med en
henvisning ?

Jeg er ikke så stiv i linkning mv. men har en ide om at det er der
problemet ligger.

/Jan

kode udsnit:
int
main(int argc, char *argv[])
{
// Connect to the sample database.
mysqlpp::Connection con(false);
if (!connect_to_db(argc, argv, con)) {
return 1;
}


 
 
Peter Jensen (18-05-2006)
Kommentar
Fra : Peter Jensen


Dato : 18-05-06 21:22

jma wrote:

> Jeg kompilere således:
> g++ -Wall -g -o ./test.run simple1.cpp -L/usr/lib/mysql -I
> /usr/local/include/mysql++/ -I /usr/include/mysql/
>
> men får en række fejl:
> g++ -Wall -g -o ./simple1.run simple1.cpp -I /usr/local/include/mysql++/ -I /usr/include/mysql/
> /tmp/ccEyEGse.o(.text+0x7b): In function `main':
> /opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:41: undefined reference to `mysqlpp::Connection::Connection(bool)'
> /tmp/ccEyEGse.o(.text+0x92):/opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:42:
> undefined reference to `connect_to_db(int, char**, mysqlpp::Connection&,
> char const*)'
>
> Jeg forstår ikke at løse problemet med "undefined reference to
> `mysqlpp::Connection::Connection(bool)'" - måske der er problem med en
> henvisning ?
>
> Jeg er ikke så stiv i linkning mv. men har en ide om at det er der
> problemet ligger.

Prøv med en '-lmysqlpp' (jeg mener at biblioteket hedder
libmysqlpp.so.*) til compile kommandoen. Hvordan skulle linkeren ellers
vide hvad den skulle linke med?

--
PeKaJe

The bureaucracy is expanding to meet the needs of an expanding bureaucracy.

jma (18-05-2006)
Kommentar
Fra : jma


Dato : 18-05-06 22:02

Peter Jensen wrote:
> jma wrote:
>
>
>>Jeg kompilere således:
>>g++ -Wall -g -o ./test.run simple1.cpp -L/usr/lib/mysql -I
>>/usr/local/include/mysql++/ -I /usr/include/mysql/
>>
>>men får en række fejl:
>>g++ -Wall -g -o ./simple1.run simple1.cpp -I /usr/local/include/mysql++/ -I /usr/include/mysql/
>>/tmp/ccEyEGse.o(.text+0x7b): In function `main':
>>/opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:41: undefined reference to `mysqlpp::Connection::Connection(bool)'
>>/tmp/ccEyEGse.o(.text+0x92):/opt/wxbin/source/windpower/jmatest/examples/simple1.cpp:42:
>>undefined reference to `connect_to_db(int, char**, mysqlpp::Connection&,
>>char const*)'
>>
>>Jeg forstår ikke at løse problemet med "undefined reference to
>>`mysqlpp::Connection::Connection(bool)'" - måske der er problem med en
>>henvisning ?
>>
>>Jeg er ikke så stiv i linkning mv. men har en ide om at det er der
>>problemet ligger.
>
>
> Prøv med en '-lmysqlpp' (jeg mener at biblioteket hedder
> libmysqlpp.so.*) til compile kommandoen. Hvordan skulle linkeren ellers
> vide hvad den skulle linke med?
>

Tak det hjalp
Du har helt ret i at bibliotektet hedder libmysqlpp.so
ligger i /usr/local/lib/libmysqlpp.so

Jeg har dog stadig problemer

Jeg kan compilere uden fejl, men nu får jeg denne fejlmedd. når jeg
kører det kompilerede program:
../test.run: error while loading shared libraries: libmysqlpp.so: cannot
open shared object file: No such file or directory

Kompilerede med dette (ændrede programmet lidt -fjernede nogle ting som
også gav problemer):
g++ -Wall -g -o ./test.run test.cpp -L/usr/local/lib/ -L/usr/lib/mysql
-I /usr/local/include/mysql++/ -I /usr/include/mysql/ -lmysqlpp

Hvordan kan jeg angive hvor den skal finde det henne ?

Jeg har prøvet at kopiere den ind lokalt med det hjalp ikke noget.

Mvh Jan

Arne Vajhøj (19-05-2006)
Kommentar
Fra : Arne Vajhøj


Dato : 19-05-06 00:57

jma wrote:
> Jeg kan compilere uden fejl, men nu får jeg denne fejlmedd. når jeg
> kører det kompilerede program:
> ./test.run: error while loading shared libraries: libmysqlpp.so: cannot
> open shared object file: No such file or directory
>
> Kompilerede med dette (ændrede programmet lidt -fjernede nogle ting som
> også gav problemer):
> g++ -Wall -g -o ./test.run test.cpp -L/usr/local/lib/ -L/usr/lib/mysql
> -I /usr/local/include/mysql++/ -I /usr/include/mysql/ -lmysqlpp
>
> Hvordan kan jeg angive hvor den skal finde det henne ?
>
> Jeg har prøvet at kopiere den ind lokalt med det hjalp ikke noget.

Prøv og lad LD_LIBRARY pege på et dir hvor den ligger.

Eller endnu bedre: opgiv mysql++ og lave din egen C++
overbygning på MySQL C API. mysql++ har givet mange grå
hår.

Arne

jma (19-05-2006)
Kommentar
Fra : jma


Dato : 19-05-06 09:22

On Thu, 18 May 2006 23:02:20 +0200, jma wrote:

> Peter Jensen wrote:
>> jma wrote:

> Jeg har dog stadig problemer
>
> Jeg kan compilere uden fejl, men nu får jeg denne fejlmedd. når jeg
> kører det kompilerede program:
> ./test.run: error while loading shared libraries: libmysqlpp.so: cannot
> open shared object file: No such file or directory
>
> Kompilerede med dette (ændrede programmet lidt -fjernede nogle ting som
> også gav problemer):
> g++ -Wall -g -o ./test.run test.cpp -L/usr/local/lib/ -L/usr/lib/mysql
> -I /usr/local/include/mysql++/ -I /usr/include/mysql/ -lmysqlpp
>
> Hvordan kan jeg angive hvor den skal finde det henne ?

Jeg løste problemet med at lave et link:
ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so



Peter Jensen (19-05-2006)
Kommentar
Fra : Peter Jensen


Dato : 19-05-06 10:04

jma wrote:

>> Hvordan kan jeg angive hvor den skal finde det henne ?
>
> Jeg løste problemet med at lave et link:
> ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so

Den mere korrekte løsning er nok at tilføje /usr/local/lib/ til
/etc/ld.so.conf (undrer mig faktisk lidt at den ikke er der), og køre
ldconfig. Alternativet er at installere mysql++ med din package
manager. At den ligger i /usr/local/lib/ tyder på at den er installeret
fra kildekode.

--
PeKaJe

To be who one is, is not to be someone else.

jma (19-05-2006)
Kommentar
Fra : jma


Dato : 19-05-06 13:53

On Fri, 19 May 2006 09:04:02 +0000, Peter Jensen wrote:

> jma wrote:
>
>>> Hvordan kan jeg angive hvor den skal finde det henne ?
>>
>> Jeg løste problemet med at lave et link:
>> ln -s /usr/local/lib/libmysqlpp.so /usr/lib/libmysqlpp.so
>
> Den mere korrekte løsning er nok at tilføje /usr/local/lib/ til
> /etc/ld.so.conf (undrer mig faktisk lidt at den ikke er der), og køre
> ldconfig. Alternativet er at installere mysql++ med din package
> manager. At den ligger i /usr/local/lib/ tyder på at den er installeret
> fra kildekode.

Ja jeg har installeret fra kildekode. Linux dist. er Fedora Core 4.
Tak for information.


Peter Jensen (19-05-2006)
Kommentar
Fra : Peter Jensen


Dato : 19-05-06 18:01

jma wrote:

>> Den mere korrekte løsning er nok at tilføje /usr/local/lib/ til
>> /etc/ld.so.conf (undrer mig faktisk lidt at den ikke er der), og køre
>> ldconfig. Alternativet er at installere mysql++ med din package
>> manager. At den ligger i /usr/local/lib/ tyder på at den er
>> installeret fra kildekode.
>
> Ja jeg har installeret fra kildekode. Linux dist. er Fedora Core 4.

OK, men der findes nok en RPM med den. Prøv at kigge på
http://rpm.pbone.net/. Personligt bruger jeg enten Debian eller Gentoo.
Det er *yderst* sjældent at de mangler noget i pakke-systemet.

> Tak for information.

Det var så lidt. Godt nok hørte det mere til i dk.edb.system.unix, men
det går nok alligevel

--
PeKaJe
What we did was just providing additional ways for the programmer to shoot
himself in the foot, and nothing else. The so-called "flexibility" is in
fact only in the bullet's caliber. -- Guillaume Laurent on the GTK-- MM

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste