# libnodave.so-> Problem beim linken



## mp (20 Februar 2007)

Hallo,

ich versuche unter Linux in einem Qt-Projekt libnodave einzubinden. 
Makefile-Auszug:

```
LIBS  = $(SUBLIBS)  -L/usr/lib64 -L/usr/lib -lnodave -lQtXml -L/usr/lib64 usw...
```

Beim kompilieren bekomm ich diesen Fehler:
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libnodave.so when searching for -lnodave
/usr/lib64/gcc/x86_64-suse-linux/4.1.2/../../../../x86_64-suse-linux/bin/ld: cannot find -lnodave
collect2: ld returned 1 exit status
gmake[1]: Das Target »first« wurde wegen Fehlern nicht aktualisiert.
gmake: *** [sub-src-make_default] Fehler 2
gmake: Das Target »first« wurde wegen Fehlern nicht aktualisiert.
*** Beendet mit Status: 2 ***

Das Testprogramm testISO_TCP funktioniert allerdings

Hat jemand eine Idee was der Compiler von mir will bzw. was ich falsch mache?

gruß Marco


----------



## Zottel (20 Februar 2007)

mp schrieb:


> Hallo,
> 
> ich versuche unter Linux in einem Qt-Projekt libnodave einzubinden.
> Makefile-Auszug:
> ...


Kann es sein, daß du da auf einem 64-Bit-System arbeitest? Und dein Projekt für 64 Bit ist? Libnodave.so ist 32 Bit. Ich habe keine Erfahrung mit 64 Bit, aber ich denke, Du solltest versuchen, zunächst eine 64-Bit-Version von libnodave.so zu erstellen.


----------



## mp (21 Februar 2007)

Hallo Zottel, 

danke für die Antwort.



Zottel schrieb:


> Kann es sein, daß du da auf einem 64-Bit-System arbeitest?


Ja, das Projekt ist auch 64Bit 


Zottel schrieb:


> Ich habe keine Erfahrung mit 64 Bit, aber ich denke, Du solltest versuchen, zunächst eine 64-Bit-Version von libnodave.so zu erstellen.


ja das hatte ich auch vermutet, war aber nicht in der Lage die 64Bit-Version der libnodave.so zu erstellen.  
make ist immer mit folgendem Fehler abgebrochen:

```
relocation R_X86_64_32S
```

Hab es aber mittlerweile hinbekommen: Resultat -> libnodave64.so  

Falls es irgendwann noch mal jemand braucht: 
Diese Zeilen im Makefile ändern:

```
CFLAGS=-m64 -Wall -Winline -DLINUX -DDAVE_LITTLE_ENDIAN -fPIC
CTFLAGS=-m64 -Wall -Winline -fPID -DLINUX -DDAVE_LITTLE_ENDIAN -fPIC
CPPFLAGS=-m64 -Wall -Winline -DLINUX -DDAVE_LITTLE_ENDIAN -fPIC
.......
install: libnodave.so
	cp libnodave.so /usr/lib64
```

Jetzt kompiliert alles perfekt.

Danke für die Hilfe
Gruß
Marco


----------

