Submoduly

Ak vytvarame novy projekt / stary projekt vypisuje chyby v style “cannot find -l<nazov libky>” (napr. “cannot find -ldataio”), v projekte nie su spravne nalinkovane libky. Libky je vhodne pridavat do projektu ako submoduly. Na pridanie submodulu treba upravit:

Hlavny subor projektu

(napr. ak je projekt Vesna tak Vesna.pro) - tu nastavime:

  • SUBDIRS (submoduly) - pre kazdu kniznicu pridame relativnu cestu k libke, napr ”../DataIO/src/dataio”
SUBDIRS += \
../Core/src/core \
../DataIO/src/dataio \
../SmartCardService/src/utils \
../SmartCardService/src/eevents \
src
  • src.depends (co sa musi skompilovat pred kompilaciou src) - pre kazdu kniznicu pridame relativnu cestu
src.depends += \
../Core/src/core \
../DataIO/src/dataio \
../SmartCardService/src/utils \
../SmartCardService/src/eevents

src.pro

(napr. ak je projekt Vesna tak Vesna/src/src.pro)

  • INCLUDEPATH - pridame relativne cesty k libkam, direktiva #include v zdrojakoch bude hladat v tychto priecinkoch
INCLUDEPATH += \
../../Core/src/core/ \
../../DataIO/src/dataio \
../../SmartCardService/src
  • LIBS:

pre kazdu kniznicu pridame riadok ”-l<nazov libky>” a ”-L<relativna cesta k libke z aktualneho src.pro>”

LIBS += \
-L../../Core/src/core \
-L../../DataIO/src/dataio \
-L../../SmartCardService/src/eevents \
-L../../SmartCardService/src/utils/ \
-lcore \
-ldataio \
-leevents \
-lutils

! Pozor - relativne cesty v src.pro su zvycajne o jednu uroven nizsie ako hlavny .pro (teda o jeden ”../” viac)

.pri subor

Ak nechceme pisat v kazdom projekte zvlast relativne cesty, mozeme vyuzit .pri subor, ktory cesty obsahuje. Existujuci .pri pouzivany vo vacsine projektov je napriklad

 /VehicleSystem/pri_subdir_paths.pri

Dany .pri subor treba pridat do hlavneho .pro aj src.pro pomocou

 include(<relativna cesta k .pri>)

cize napriklad

 include(../pri_subdir_paths.pri)

Potom nam namiesto relativnych ciest postaci pisat nazov kniznice (resp. nazov definovany v danom .pri).

 
coding/submodules_pro_pri.txt · Last modified: 2016/12/13 10:19 by 192.168.242.194
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki