Nachdem das erzeugen und nutzen einer eigenen library ja so wunderbar funktioniert, drängt sich bei mir natürlcih die nächste Frage auf, wie ich eine gescheite Versionskontrolle integrieren kann.
Da sich ja gerade bei einer library im laufe der Entwicklung einiges ändern kann, sollten sich ja etwaige Testprogramme ja nur mit einer aktuellen Lib kompilieren lassen, bzw. sollte es in den Testprogrammen eine Abfrage geben, ob div. Funktionen bereits zur Verfügung stehen ...
Hmmm,da ich ja gerade dabei bin ... wie könnte ich die Versionsbezeichnung aus einem CVS-Tree heraus generieren?
Aber dazu sollte IMHO ein eigener Thread gestartet werden, nicht?
Bodo
Versionsprüfung / -erstellung bei einer Lib
Re: Versionsprüfung / -erstellung bei einer Lib
Hi,
also das mit der Versions-Kontrolle ist so:
Es bigt eine lib Namens z.B. mylib.so, auf die sind norm. Links die ungefähr so mylib.so.1.0.1 aussehen gemacht. Das Programm läd also die lib mylib.so.1.0.1. Der Benutzer kann also wenn er will(er besitzt z.B. die mylib.so.1.0.0) seine alte lib einfach auf mylib.so.1.0.1 linken, er weiss dann aber auch, dass das eventuell zu Probleme, Abstüzen oder gar keinem starten kommen kann.
Weissi
PS: Dass ganze bezieht die auf dynamic libs
also das mit der Versions-Kontrolle ist so:
Es bigt eine lib Namens z.B. mylib.so, auf die sind norm. Links die ungefähr so mylib.so.1.0.1 aussehen gemacht. Das Programm läd also die lib mylib.so.1.0.1. Der Benutzer kann also wenn er will(er besitzt z.B. die mylib.so.1.0.0) seine alte lib einfach auf mylib.so.1.0.1 linken, er weiss dann aber auch, dass das eventuell zu Probleme, Abstüzen oder gar keinem starten kommen kann.
Weissi
PS: Dass ganze bezieht die auf dynamic libs
Re: Versionsprüfung / -erstellung bei einer Lib
was aber überhaupt nicht sicher ist, schließlich kann ich als root der genannten lib entweder einen anderen Namen geben, oder einfach einen passenden Link drauf legen ...
Da muß es doch durchaus einen anderen Weg geben, oder?
Okay, ich könnte noch eine Funktion reinhacken, die die aktuelle Versionsnummer ausgibt, aber ist das auch so konform / korrekt?
Bodo
Da muß es doch durchaus einen anderen Weg geben, oder?
Okay, ich könnte noch eine Funktion reinhacken, die die aktuelle Versionsnummer ausgibt, aber ist das auch so konform / korrekt?
Bodo
Re: Versionsprüfung / -erstellung bei einer Lib
Hi,
die Lib hat eine eingebaute Version. Schau dir mal die Option -soname des Linkers an.
Gruß,
hjb
die Lib hat eine eingebaute Version. Schau dir mal die Option -soname des Linkers an.
Gruß,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?
Re: Versionsprüfung / -erstellung bei einer Lib
Wenn du dir den letzten Thrad über "lib programmieren" aufmerksam durchgelesen hättest -- vor allem mein Posting vom 10-MAR-2001 mal anschauen -- dort habe ich den Parameter -soname schon mit eingebaut gehabt um der library den Name und die Version zuzuweisen. Einfach mal das 3.te Kapitel der Program-Library-HOWTO durchlesen.
<font face="Courier New">$ gcc -shared -o libtestlib.so.1.0 -Wl,-soname,libtestlib.so.1 test.o</font><!--fixed-->
3.1.1. Shared Library Names
Every shared library has a special name called the ``soname''. The soname has the prefix ``lib'', the name of the library, the phrase ``.so'', followed by a period and a version number that is incremented whenever the interface changes (as a special exception, the lowest-level C libraries don't start with ``lib''). A fully-qualified soname includes as a prefix the directory it's in; on a working system a fully-qualified soname is simply a symbolic link to the shared library's ``real name''.
Referenz:
Program-Library-HOWTO
<a href="http://www.linuxdoc.org/HOWTO/Program-L ... html#AEN79" target="_blank"><!--auto-->http://www.linuxdoc.org/HOWTO/Program-L ... <!--auto-->
<font face="Courier New">$ gcc -shared -o libtestlib.so.1.0 -Wl,-soname,libtestlib.so.1 test.o</font><!--fixed-->
3.1.1. Shared Library Names
Every shared library has a special name called the ``soname''. The soname has the prefix ``lib'', the name of the library, the phrase ``.so'', followed by a period and a version number that is incremented whenever the interface changes (as a special exception, the lowest-level C libraries don't start with ``lib''). A fully-qualified soname includes as a prefix the directory it's in; on a working system a fully-qualified soname is simply a symbolic link to the shared library's ``real name''.
Referenz:
Program-Library-HOWTO
<a href="http://www.linuxdoc.org/HOWTO/Program-L ... html#AEN79" target="_blank"><!--auto-->http://www.linuxdoc.org/HOWTO/Program-L ... <!--auto-->
Re: Versionsprüfung / -erstellung bei einer Lib
@Descartes & HJB
Ihr habt recht,das hab ich doch tatsächlich überlesen. Oder nicht beachtet? Ich weiß jetzt nicht so genau,ich probiers heut abend / morgen früh mal aus!
Danke!
Bodo
Ihr habt recht,das hab ich doch tatsächlich überlesen. Oder nicht beachtet? Ich weiß jetzt nicht so genau,ich probiers heut abend / morgen früh mal aus!
Danke!
Bodo
Re: Versionsprüfung / -erstellung bei einer Lib
@Descartes & HJB
Ihr habt recht,das hab ich doch tatsächlich überlesen. Oder nicht beachtet? Ich weiß jetzt nicht so genau,ich probiers heut abend / morgen früh mal aus!
Danke!
Bodo
Ihr habt recht,das hab ich doch tatsächlich überlesen. Oder nicht beachtet? Ich weiß jetzt nicht so genau,ich probiers heut abend / morgen früh mal aus!
Danke!
Bodo