Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.09.2012, 21:55

MSVC: Linken automatisieren

Hallo,

es passiert ja ziemlich häufig, dass man die immergleichen libraries zu Projekten dazulinkt. Ich kann mich erinnern, dass man in einer alten VC-Version die include/lib-Verzeichnisse global bearbeiten konnte, aber das irgendwann nur noch auf Projekt-Ebene ging. Kann man das trotzdem automatisieren anstatt immer Include-Verzeichnisse, Release/Debug-libs zu linken und dlls zu kopieren, am besten noch in mehreren Konfigurationen?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

2

16.09.2012, 22:20

Was du eigentlich immer schon gerne haben wolltest, nur wusstest du es bis gerade eben nicht: Property Sheets

ansonsten: http://blogs.msdn.com/b/vsproject/archiv…irectories.aspx

3

17.09.2012, 21:56

perfekt <3

4

10.04.2013, 11:36

Hi,

ich hab auch noch mal ne Frage hierzu, denn irgendwas mache ich da noch falsch. Was ich tun will, ist für jede zusätzliche 3rd-party lib ein eigenes propsheet anlegen, die ich dann je nach benötigter lib-Konfiguration ins Projekt importieren kann. Wenn ich jetzt aber ein propsheet für libA in meinem Projekt anlege, da alle Pfade eintrage und dann ein zweites für libB, werden alle Eigenschaften von dem libA-sheet vererbt. Wenn ich die jetzt entferne, sodass im libB-sheet auch nur die Pfade für lib B stehen, kompiliert das Projekt nicht mehr, weil das libA-sheet im Prinzip komplett überschrieben wird.
Wenn ich die libA-Pfade aber im sheet von B lasse, kann ich das ja nicht wirklich speichern und so in anderen Projekten benutzen, denn jedesmal, wenn ich dann nur lib B importieren will, importiere ich ja zwangsläufig auch die Pfade von A mit.

Hoffe, es ist klar, was ich meine. ^^

Schrompf

Alter Hase

Beiträge: 1 470

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

5

10.04.2013, 11:47

Ja, aber das ist nur eine Frage der Anzeige. Microsoft hat das da etwas doof gelöst - Du siehst in einem neuen Property Sheet nicht nur die sheet-eigenen Einstellungen, sondern *alle* Einstellungen. Gespeichert werden aber nur die, die Du dort auch eingibst. Du kannst das sehen, wenn Du Dir mal die dazugehörige .vsprops-Datei anschaust. Da stehen dann wirklich nur die paar Einstellungen drin, die Du da auch eingegeben hast.

Außer natürlich Du löschst im Sheet dann die anderen Einstellungen. In dem Fall steht in dem Sheet dann "die und die zusätzliche Einstellung, und die alle bitte löschen". Dann sollte klar sein, warum Dein Projekt nicht mehr kompiliert.

Property Sheets sind übrigens wirklich ein Lebensretter :-)
Häuptling von Dreamworlds. Baut aktuell an nichts konkretem, weil das Vollzeitangestelltenverhältnis ihn fest im Griff hat. Baut daneben nur noch sehr selten an der Open Asset Import Library mit.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

6

10.04.2013, 22:27

Der Trick ist, den aktuellen Wert der Property in der neuen Definition weiterzuverwenden, um so rekursiv eine Liste zu bauen:

Quellcode

1
<MyProperty>bli;bla;blo;$(MyProperty)</MyProperty>


;)

7

23.06.2013, 14:02

Hallo,

irgendwie muss mir der Thread entfallen sein bzw. es funktionierte mal ne Zeit lang auch ohne diese Problematik, aber genau das Folgende passiert bei mir eben nicht.
Ja, aber das ist nur eine Frage der Anzeige. Microsoft hat das da etwas doof gelöst - Du siehst in einem neuen Property Sheet nicht nur die sheet-eigenen Einstellungen, sondern *alle* Einstellungen. Gespeichert werden aber nur die, die Du dort auch eingibst. Du kannst das sehen, wenn Du Dir mal die dazugehörige .vsprops-Datei anschaust. Da stehen dann wirklich nur die paar Einstellungen drin, die Du da auch eingegeben hast.

Außer natürlich Du löschst im Sheet dann die anderen Einstellungen. In dem Fall steht in dem Sheet dann "die und die zusätzliche Einstellung, und die alle bitte löschen". Dann sollte klar sein, warum Dein Projekt nicht mehr kompiliert.

Property Sheets sind übrigens wirklich ein Lebensretter :-)
Ich habe z.B. ein Projekt, das die SDL und SDL_mixer braucht. Dann lege ich mir ein Propsheet für die SDL an, alles wunderbar. Wenn ich dann ein zweites Propsheet für SDL_mixer anlege und überall angebe, dass er vom übergeordneten Projekt erben soll, steht in der props-Datei nichts drin (bzw. eben nur leere XML-Knoten). In VStudio werden mir dann logischerweise auch die geerbten SDL-Pfade angezeigt. Sobald ich aber die SDL_mixer-Pfade anhänge, stehen beide, also SDL und SDL_mixer auch im SDL_mixer.props-file, also kann ich in anderen Projekten wieder kein SDL_mixer importieren, ohne gleich die SDL mitzunehmen. Und wenn ich in VStudio den geerbten (aka. SDL-)Pfad lösche, sodass wirklich nur der Mixer-Pfad im Propsheet steht, dann sind der IDE wieder die SDL-Pfade unbekannt...
Der Trick ist, den aktuellen Wert der Property in der neuen Definition weiterzuverwenden, um so rekursiv eine Liste zu bauen:

Quellcode

1
bli;bla;blo;$(MyProperty)


;)
Wie soll das dann aussehen? '...\SDL_mixer-1.2.12\include;$(AdditionalIncludeDirectories)' tut es jedenfalls auch nicht, er findet SDL.h wieder nicht. Oder hab ich das falsch verstanden?

Werbeanzeige