Forum: PC-Programmierung Problem mit statischem Linken unter 32-Bit Linux


von Ralph S. (jjflash)


Lesenswert?

Ich möchte ein Programm, dass ich auf einem 64-Bit Linux geschrieben 
habe unter einem 32-Bit Linux neu übersetzen.

Und ich hätte nicht gedacht, dass ich hier ein Problem bekomme.

Alle (wirklich alle) Sourcen wurden neu übersetzt und es läßt sich fast 
alles - bis auf das Endprodukt - compilieren und linken. Aber eben das 
Endprodukt nicht.

Die Pfade sind bei beiden Systemen 64 Bit und 32 Bit absolut identisch. 
Dennoch bekomme ich diese Fehlermeldung hier:
1
g++ -c tvedit.cc -Os -I./ -I../../include -I/usr/include/rhtvision   -I./ -I../../include -o  tvedit.o
2
g++ tvedit.o -o tvedit -L/usr/lib -L/usr/X11R6/lib -lrhtv.a -lstdc++ -lncurses -lm -lgpm -lX11 -lXmu
3
/usr/lib/gcc/i586-slackware-linux/5.3.0/../../../../i586-slackware-linux/bin/ld: cannot find -lrhtv.a
4
collect2: error: ld returned 1 exit status

In meiner Verzweiflung habe ich mit den Zugriffsrechten auf librhtv.a 
gespielt und die sind im Moment 777. Natürlich habe ich 20000 mal 
kontrolliert, ob die librhtv.a im Verzeichnis /usr/lib liegt und das tut 
sie.

Ich habe versucht mit g++ und mit ld zu linken ... gleiches Ergebnis. 
Dann dachte ich mir, dass vllt. aus irggendeinem Grund die librhtv.a 
noch eine 64 Bit Library ist und habe das hier gemacht:

objdump -f librhtv.a | grep ^architecture

und die Ausgabe ist:

architecture: i386, flags 0x00000011:

Also ist das eine statische 32 Bit Library. Woran liegt das, dass der 
Linker diese Library ums verr******* nicht finden / hinzulinken kann?

Ich könnte es ja verstehen, dass die Library evtl. nicht will, weil dort 
etwas in einer 64 Bit Datenstruktur gemacht werden könnte, die eben 
unter 32 Bit nicht läuft, aber dass er sie erst gar nicht findet und 
deshalb auch nicht linkt verstehe ich nicht.

Sehe ich den Wald vor lauter Bäumen nicht und hat hier jemand einen Tip, 
was ich noch alles ausprobieren kann?

-------------------------------------------------------

(Ziel des ganzen ist es, dass es später auch einmal auf einem RaspBerry 
Pi Zero laufen soll, aber die 32-Bit Geschichten probiere ich vorher 
erst gerne auf einem PC-System aus... hier ein Thin-client)

Wenn mir jemand helfen könnte wäre super,

Gruß, Ralph

: Verschoben durch Moderator
von Jack V. (jackv)


Lesenswert?

Du könntest versuchen, die Endung wegzulassen (wie bei den anderen 
eingebundenen statischen Libs in deinem Aufruf).

von Ralph S. (jjflash)


Lesenswert?

waaaaaaaaaaaaaaaaaaaah.... wie peinlich !!!

Und mir an den Kopf batsch !

Das war das Problem .... Vielen Dank Jack :-)

von 900ss (900ss)


Lesenswert?

Ralph S. schrieb:
> waaaaaaaaaaaaaaaaaaaah

Grins....... solche Effekte kennt wahrscheinlich fast jeder.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.