ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > versions-string | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
17.04.2005, 18:41 Uhr Valwit Posts: 750 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
17.04.2005, 18:57 Uhr geit Posts: 332 [Ex-Mitglied] |
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 [ - Antworten - Zitieren - Direktlink - ] |
17.04.2005, 20:40 Uhr thomas Posts: 7718 Nutzer |
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/ [ - Antworten - Zitieren - Direktlink - ] |
17.04.2005, 21:29 Uhr Valwit Posts: 750 Nutzer |
danke sehr -- Viele Grüsse Valwit [ - Antworten - Zitieren - Direktlink - ] |
18.04.2005, 00:30 Uhr geit Posts: 332 [Ex-Mitglied] |
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 [ - Antworten - Zitieren - Direktlink - ] |
18.04.2005, 11:15 Uhr gni Posts: 1106 Nutzer |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
18.04.2005, 20:06 Uhr geit Posts: 332 [Ex-Mitglied] |
Zitat: Wenn eine Variable nicht benutzt (aka referiert) wird, kann sie im Zuge des Optimierens sehr wohl entfernt werden. Guido Mersmann [ - Antworten - Zitieren - Direktlink - ] |
18.04.2005, 22:36 Uhr tokai Posts: 1071 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
18.04.2005, 22:47 Uhr geit Posts: 332 [Ex-Mitglied] |
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 [ - Antworten - Zitieren - Direktlink - ] |
19.04.2005, 09:47 Uhr gni Posts: 1106 Nutzer |
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? [ - Antworten - Zitieren - Direktlink - ] |
19.04.2005, 10:29 Uhr Solar Posts: 3680 Nutzer |
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... [ - Antworten - Zitieren - Direktlink - ] |
19.04.2005, 13:25 Uhr gni Posts: 1106 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
19.04.2005, 13:32 Uhr Solar Posts: 3680 Nutzer |
*klatsch* Klar, symbolweise geht ja gar nicht... manchmal hilft nachdenken. Danke für den leichten Schlag auf den Hinterkopf. [ - Antworten - Zitieren - Direktlink - ] |
19.04.2005, 20:35 Uhr Holger Posts: 8116 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > versions-string | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |