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