![]() |
DEUTSCHE VERSION |
|
![]() |
Links | | | Forums | | | Comments | | | Report news |
![]() |
Chat | | | Polls | | | Newsticker | | | Archive |
![]() |
amiga-news.de Forum > Programmierung > versions-string | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2005-04-17, 18:41 h Valwit Posts: 750 User |
hi! wie fügt man einen versionsstring hinzu (in c)? ich möchte ein hello world schreiben dass nach dem compilen eine versionsnummer enthält, die sich mit "version" in der shell anzeigen lässt -- Viele Grüsse Valwit [ - Answer - Quote - Direct link - ] |
2005-04-17, 18:57 h geit Posts: 332 [Former member] |
Du mußt einfach nur einen Versionsstring in eine Variable packen: const char app_versionstring[] = "$VER: hello.world V1.00 (16.04.2005)"; Je nach compileroption mußt Du eventuell dem Compiler mitteilen, das die Variable nicht wegoptimiert wird, weil sie ja meistens nicht referiert wird. Guido Mersmann [ - Answer - Quote - Direct link - ] |
2005-04-17, 20:40 h thomas Posts: 7721 User |
Am sinnvollsten benutzt du BumpRev, um den Versionsstring zu generieren. (BumpRev ist im NDK enthalten). Gib in der Shell ein: BumpRev meinprogramm 1 Dann sieht dein Programm so aus: #include "meinprogramm_rev.h" const char app_versionstring[] = VERSTAG; oder auch const char app_versionstring[] = VERSTAG " (c) 2005 mein name <meine.email@adresse>"; Gruß Thomas -- Email: thomas-rapp@web.de Home: home.t-online.de/home/thomas-rapp/ [ - Answer - Quote - Direct link - ] |
2005-04-17, 21:29 h Valwit Posts: 750 User |
danke sehr ![]() -- Viele Grüsse Valwit [ - Answer - Quote - Direct link - ] |
2005-04-18, 00:30 h geit Posts: 332 [Former member] |
Das kann man natürlich handhaben, wie man will. Zum einfachen Verständniss war das so ok. Bei mir sieht der für alle Programme so aus: /********************************************************************* *****/ #define I2S(x) I2S2(x) #define I2S2(x) #x #ifndef VERSION_EXT #define VERSION_EXT "" #endif __entry const char app_versionstring[] = "$VER: " APPLICATIONNAME " " I2S(VERSION) "." I2S(REVISION) " (" I2S(DAY) "." I2S(MONTH) "." I2S(YEAR) ") by " AUTHORNAME " " VERSION_EXT; Guido Mersmann [ - Answer - Quote - Direct link - ] |
2005-04-18, 11:15 h gni Posts: 1106 User |
Zitat:Wenn ein Compiler eine *nicht-statische* globale Variable entfernt, dann macht er was falsch :-) [ Dieser Beitrag wurde von gni am 18.04.2005 editiert. ] [ - Answer - Quote - Direct link - ] |
2005-04-18, 20:06 h geit Posts: 332 [Former member] |
Zitat: Wenn eine Variable nicht benutzt (aka referiert) wird, kann sie im Zuge des Optimierens sehr wohl entfernt werden. Guido Mersmann [ - Answer - Quote - Direct link - ] |
2005-04-18, 22:36 h tokai Posts: 1071 User |
Zitat: Dieses versionstag ist nicht valid. :-) richtig wäre: "$VER: hello.world 1.0 (16.04.2005)" Zur Erläuterung: "$VER: programname version.revision (DD.MM.YYYY)", der Revision wird keine führende Null vorrangestellt (ja, auch C= hat das falsch gemacht ![]() regards, tokai -- http://www.christianrosentreter.com ~ MorphOS und AmigaOS Software [ - Answer - Quote - Direct link - ] |
2005-04-18, 22:47 h geit Posts: 332 [Former member] |
Zitat: Ja, hast ja recht. Das passiert, wenn man immer nur das Macro (s.o.) verwendet und es dann mal eben so hinschreibt. ![]() Guido Mersmann [ - Answer - Quote - Direct link - ] |
2005-04-19, 09:47 h gni Posts: 1106 User |
Zitat:Das ist für nicht-static Variablen (und auch Funktionen) definitiv falsch! Wie soll der Compiler für *global* sichtbare Elemente entscheiden, das sie unbenutzt sind? [ - Answer - Quote - Direct link - ] |
2005-04-19, 10:29 h Solar Posts: 3680 User |
Der Compiler kann's nicht entscheiden, weil beim Linken ja andere Objektfiles das Symbol referenzieren könnten. Aber wie sieht das beim Linker aus? Der hat doch die vollständigen Referenztabellen... [ - Answer - Quote - Direct link - ] |
2005-04-19, 13:25 h gni Posts: 1106 User |
Zitat:Gut erkannt. Zitat:Das ist zwar richtig, hilft aber nicht. Der Linker könnte unbenutze Elemente nur entfernen, wenn sie in eigenen Sektionen liegen und das ist selten der Fall. [ - Answer - Quote - Direct link - ] |
2005-04-19, 13:32 h Solar Posts: 3680 User |
*klatsch* Klar, symbolweise geht ja gar nicht... manchmal hilft nachdenken. Danke für den leichten Schlag auf den Hinterkopf. ![]() [ - Answer - Quote - Direct link - ] |
2005-04-19, 20:35 h Holger Posts: 8116 User |
Zitat:Das sollte er vor allem nicht als seine Aufgabe ansehen. Zu diesem Zweck erzeugt man ja explizit link-libs, aus denen dann der Linker dann nur referenzierte Objekte nimmt. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Programmierung > versions-string | [ - Search - New posts - Register - Login - ] |
![]() |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2025 by amiga-news.de - all rights reserved. |
![]() |