Kód megosztása egy solution-ben hogyan?
2014-03-01T11:26:48+01:00
2014-04-06T11:47:30+02:00
2022-08-08T18:30:31+02:00
catalisat
Sziasztok!

Egy olyan alkalmazást fejlesztek, ami két részből áll. Az egyik egy debug eszköz, amivel egy script nyelvet fejlesztek, a másik pedig ennek a futtató környezete kijelzőkkel, minden egyébbel.
Mivel a kettő szorosan összefügg, jó lenne a közös részeket csak egyszer elkészíteni, és fizikailag ugyanazokat a forrásfájlokat felhasználni mindkettőben, hogy ha változtatko a debug kódjában, akkor a másik program automatikusan átvegye ezeket. Viszont nincs szükség mindkettő egyidejű jelenlétére, így kerülném a dll-es bonyolításokat (pláne hogy ez számomra már a misztika területe).
Szóval azt szeretném megoldani, hogy a "debug" programban felhasznált kódokra tudjak hivatkozni a "run" programomból még fordítási időben. Sajnos eddig nem sikerült megoldani, mert valami hivatkozási bibi mindig előjött. Van ennek valami bevált módja?


Köszönöm,
Krisz
Mutasd a teljes hozzászólást!
Végülis úgy tűnik sikerült megoldani.
A solution-ben nyitottam egy új projektet a "run" alkalmazásnak.
A debug és a run kódmappák mellett létrehoztam egy új shared mappát, ebbe áthelyeztem az összes olyan .h és .cpp állományt, amit mindkét programból használni akarok.
Ekkor persze a debug (eddig már működó) program szétesett atomjaira, és hibahegyeket generált.

Most a SolutonExplorerben kiválasztottam a debug projekt properties lehetőségét, és ezen belül megkerestem a Configuration legördülő menüt. Kiválasztottam, hogy ALL Config.
A C/C++ / General lapon az Additional Include Directories -ba beleírtam az újonnan létrehozott shared mappa elérési útját. Elvileg most már innen is betölti a fájlokat.
Csakhogy nem, mert az stdafx.h alapján generálgat valamit, amit így nem tud. Tehát a C/C++ / Precompiled Headers lapon a Create/Use PCH through File legyen ..\shared\stdafx.h, felette a Create/Use Precomiled Hedaer legyen Use Precompiled Header (/Yu).
OK. Most már majdnem jó. Ugyanezt be kell állítani külön a stdafx.cpp fájlra is, csak itt a /Yu az /Yc legyen. Most már tényleg fordítja az stdafx.cpp-t, ebből pedig a többit.
Ugyanez természetesen a run projektben is.

Uh.. Lehet kicsit bonyi (az), de csak egyszer kell végigbogarászni, és attól kezdve működik. Mindkét projekt használja a közös fájlokat. Ha az egyik módosítást igényel, akkor a másikban ez automatikusan megjelenik. Most örülök :) Nem tudom a studio többi verziójában is működik-e (gondolom igen), de a 2008-as viszi.
A megoldásra ez a topic vezetett el:
c++ - How to fix .pch file missing on build? - Stack Overflow

Ilyenkor amúgy mi van? Magamnak adjam a pontot?
Mutasd a teljes hozzászólást!

  • Pedig a dll lesz a megoldás.
    Mutasd a teljes hozzászólást!
  • Nem lehet valahogy linkelni, hogy egyik használja a másikét? Nem hiszem el.. :(
    Mutasd a teljes hozzászólást!
  • Végülis úgy tűnik sikerült megoldani.
    A solution-ben nyitottam egy új projektet a "run" alkalmazásnak.
    A debug és a run kódmappák mellett létrehoztam egy új shared mappát, ebbe áthelyeztem az összes olyan .h és .cpp állományt, amit mindkét programból használni akarok.
    Ekkor persze a debug (eddig már működó) program szétesett atomjaira, és hibahegyeket generált.

    Most a SolutonExplorerben kiválasztottam a debug projekt properties lehetőségét, és ezen belül megkerestem a Configuration legördülő menüt. Kiválasztottam, hogy ALL Config.
    A C/C++ / General lapon az Additional Include Directories -ba beleírtam az újonnan létrehozott shared mappa elérési útját. Elvileg most már innen is betölti a fájlokat.
    Csakhogy nem, mert az stdafx.h alapján generálgat valamit, amit így nem tud. Tehát a C/C++ / Precompiled Headers lapon a Create/Use PCH through File legyen ..\shared\stdafx.h, felette a Create/Use Precomiled Hedaer legyen Use Precompiled Header (/Yu).
    OK. Most már majdnem jó. Ugyanezt be kell állítani külön a stdafx.cpp fájlra is, csak itt a /Yu az /Yc legyen. Most már tényleg fordítja az stdafx.cpp-t, ebből pedig a többit.
    Ugyanez természetesen a run projektben is.

    Uh.. Lehet kicsit bonyi (az), de csak egyszer kell végigbogarászni, és attól kezdve működik. Mindkét projekt használja a közös fájlokat. Ha az egyik módosítást igényel, akkor a másikban ez automatikusan megjelenik. Most örülök :) Nem tudom a studio többi verziójában is működik-e (gondolom igen), de a 2008-as viszi.
    A megoldásra ez a topic vezetett el:
    c++ - How to fix .pch file missing on build? - Stack Overflow

    Ilyenkor amúgy mi van? Magamnak adjam a pontot?
    Mutasd a teljes hozzászólást!
  • Hozzátenném még, hogy amikor a beállítást megejtjük, akkor a beállító lap tetején a 'Configuration Active(debug/release)' opciót állítsuk All Configurations-ra! Így elég csak egyszer beállítani, nem kell külön a debug-ra, és külön a release-re is.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd