Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
library mit configure bauen - version für abhängigkeiten übergeben
Hi,
ich hab gerade folgendes Problem:
Ich habe ein Programm geschrieben, welches nun auch läuft.
Allerdings ist auf dem Server nur die libstdc++.so.5, auf meinem
System allerdings die version 6 schon installiert, da es ein knoppix
ist, kann ich da nicht viel ändern. Ich würde auch ungern auf dem Server
die Sache kompilieren, das ist die letzte Möglichkeit die ich in betracht ziehe.
das eigentliche Programm konnte ich schon gegen die 5er version linken,
allerdings linkt die lib immer noch gegen 6. Nun stelle ich mir die Frage,
ob wenn ich die lib neu baue, ich über configure irgendwie sagen kann,
das er die 5er nehmen soll und nicht die 6er.
phlox
__________________ Intelligenz ist eine Illusion des Menschen
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
Du kannst beim Linken auch den kompletten Namen angeben.
Also -l/usr/lib/..../libstdc++.so.5 statt einfach -llibstdc++.
Evtl. auch ohne -l. Vielleicht hast du sogar statische (.a) stdc++ libs da, dann kannst du sie wie eine Objekt-Datei mit reinschreiben.
Habs selbst wohl noch nie probiert.
Ein entsprechender configure.ac-code saehe dann wohl so aus:
code:
1:
2:
3:
4:
5:
6:
7:
8:
AC_ARG_WITH([stdc++],
AC_HELP_STRING([--with-stdc++=/path/to/libstdc++],
[force linking against this libstdc++]),
[STDCCLINK="$withval"],
[STDCCLINK="-lstdc++"]
)
AC_SUBST(STDCCLINK)
Und in der Makefile.am:
code:
1:
targetname_LDADD = $(STDCCLINK)
Mit targetname = Name des Ziels beim Linken.
UPS - hab grad gemerkt, dass ich deine Frage nicht ganz richtig verstanden habe
Was spricht denn dagegen auf dem Server zu kompilieren?
Ansonsten probier mal LDFLAGS="/usr/lib/..../libstdc++.so.5" ./configure && make
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
Also was dagegen spricht ist z.b. das es einfach nicht so gut ist,
auf Production servern zu kompilieren bzw. zu entwickeln.
Von daher die Idee es anders zu bauen, und dann auszurollen.
Ich werd mal in das entsprechende configute script schauen,
und es gegebenenfalls anpassen, aber evtl. bau ich es auch
einfach auf dem Productionserver, die Sache soll möglichst schnell gehen...
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
Also die Sache läuft immer noch nicht, aber ich bin schon mal was weiter gekommen...
Mittlerweile hab ich ein knoppix mit einer entsprechenden Umgebung (also nur vers.5)
aber auch dort habe ich bisher probleme die anwendung zu kompilieren...
Jetzt hatte ich noch eine Idee, welche ich unter Windows z.b. wohl machen könnte:
Einfach die .so datei ins Programmverzeichnis. Findet linux die dann?
__________________ Intelligenz ist eine Illusion des Menschen
Dabei seit: 11.12.2001
Beiträge: 2.282
Herkunft: /dev/stderr
Mit -L. vielleicht.
Das andere Problem ist, dass die Anwendung beim Starten die so-Datei auch finden muss.
Dafuer muss sie im ld.so.cache erfasst sein. Dazu muss das Verzeichnis in der /etc/ld.so.conf stehen und zum Updaten muss ldconfig ausgefuehrt werden.
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
Themenstarter
naja, ich hab jetzt ein paar tage probiert, und es kompiliert nicht
wirklich unter Knoppix 3.8.2 (Linker Fehler)
Da aber nicht mehr allzu viel Zeit im Projekt ist, werd ich jetzt einfach
die 6 er version erstmal auf den Server tun, ist ja kein Beinbruch.
Die läuft dann hoffentlich...
__________________ Intelligenz ist eine Illusion des Menschen