Versionsprüfung / -erstellung bei einer Lib

Post Reply
Message
Author
thedodger
Posts: 26
Joined: 07. Feb 2001 13:39
Contact:

Versionsprüfung / -erstellung bei einer Lib

#1 Post by thedodger »

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

weissi
Posts: 40
Joined: 24. Mar 2001 20:16
Location: Freiburg
Contact:

Re: Versionsprüfung / -erstellung bei einer Lib

#2 Post by weissi »

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

thedodger
Posts: 26
Joined: 07. Feb 2001 13:39
Contact:

Re: Versionsprüfung / -erstellung bei einer Lib

#3 Post by thedodger »

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

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

Re: Versionsprüfung / -erstellung bei einer Lib

#4 Post by hjb »

Hi,

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?

User avatar
heinrich
Posts: 219
Joined: 22. Sep 1999 11:22
Location: N49.137 E8.544

Re: Versionsprüfung / -erstellung bei einer Lib

#5 Post by heinrich »

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-->

thedodger
Posts: 26
Joined: 07. Feb 2001 13:39
Contact:

Re: Versionsprüfung / -erstellung bei einer Lib

#6 Post by thedodger »

@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

thedodger
Posts: 26
Joined: 07. Feb 2001 13:39
Contact:

Re: Versionsprüfung / -erstellung bei einer Lib

#7 Post by thedodger »

@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

Post Reply