{"id":642,"date":"2010-12-28T00:21:35","date_gmt":"2010-12-27T23:21:35","guid":{"rendered":"http:\/\/netrix.org.pl\/index.php\/2010\/12\/28\/struktura-katalogw-w-projekcie\/"},"modified":"2011-01-05T08:48:56","modified_gmt":"2011-01-05T07:48:56","slug":"struktura-katalogw-w-projekcie","status":"publish","type":"post","link":"https:\/\/netrix.org.pl\/index.php\/2010\/12\/28\/struktura-katalogw-w-projekcie\/","title":{"rendered":"Struktura katalog&oacute;w w projekcie"},"content":{"rendered":"<p>Czasami istnieje potrzeba pisania jednego projektu w r\u00f3\u017cnych \u015brodowiskach programistycznych, tym bardziej je\u015bli korzystamy z systemu kontroli wersji (np. SVN,\u00a0 GIT) i chcemy skompilowa\u0107 projekt z za\u0142o\u017cenia multiplatformowy na innym systemie operacyjnym. W takim przypadku fajnie by by\u0142o, aby projekt mia\u0142 struktur\u0119 katalog\u00f3w niezale\u017cn\u0105 od IDE, ale jak powinna ona wygl\u0105da\u0107? Wed\u0142ug mnie tak:<\/p>\n<ul>\n<li>include<\/li>\n<li>src<\/li>\n<li>workdir<\/li>\n<li>projects<\/li>\n<li>libs<\/li>\n<\/ul>\n<p>Katalog <em>include<\/em> powinien zawiera\u0107 tylko pliki nag\u0142\u00f3wkowe, kt\u00f3re b\u0119d\u0105 do\u0142\u0105czane w innych projektach. Tak naprawd\u0119 jest on tutaj tylko ze wzgl\u0119du na projekt biblioteki (np. lib, dll, itp.), wi\u0119c w przypadku kompilacji do pliku wykonywalnego, mo\u017cna ten katalog pomin\u0105\u0107, wtedy wszystkie pliki nag\u0142\u00f3wkowe powinny znale\u017a\u0107 si\u0119 w katalogu <em>src<\/em>. Katalog <em>src<\/em> jest przeznaczony tylko dla plik\u00f3w \u017ar\u00f3d\u0142owych bie\u017c\u0105cego projektu, kt\u00f3re mog\u0105 by\u0107 uporz\u0105dkowane w r\u00f3\u017cnych podkatalogach. W <em>workdir<\/em> powinna si\u0119 znale\u017a\u0107 ca\u0142a struktura katalog\u00f3w docelowego programu, czyli wszystkie pliki i katalogi, kt\u00f3re b\u0119d\u0105 dostarczane ze skompilowanym plikiem wykonywalnym. Katalog <em>libs<\/em> s\u0142u\u017cy do przechowywania wszystkich do\u0142\u0105czanych bibliotek u\u017cywanych w aplikacji. Dla ka\u017cdej z nich powinien znale\u017a\u0107 si\u0119 odpowiedni katalog a w nim jeszcze dwa \u2013 <em>include<\/em> i <em>lib<\/em>. Ostatnim katalogiem jest <em>projects<\/em>, kt\u00f3ry jest przeznaczony do przechowywania plik\u00f3w projekt\u00f3w dla ka\u017cdego IDE (oczywi\u015bcie ka\u017cdy w osobnym katalogu).<\/p>\n<p>Taka struktura jest przejrzysta i niezale\u017cna od stosowanego IDE. Zreszt\u0105 nie jest to m\u00f3j pomys\u0142, poniewa\u017c jest on od dawna stosowany w \u015brodowiskach linuksowych, ale w nieco innej postaci. Kluczowe jest po prostu trzymanie plik\u00f3w \u017ar\u00f3d\u0142owych w jednym katalogu niezale\u017cnym od stosowanego \u015brodowiska.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Czasami istnieje potrzeba pisania jednego projektu w r\u00f3\u017cnych \u015brodowiskach programistycznych, tym bardziej je\u015bli korzystamy z systemu kontroli wersji (np. SVN,\u00a0 GIT) i chcemy skompilowa\u0107 projekt z za\u0142o\u017cenia multiplatformowy na innym systemie operacyjnym. W takim przypadku fajnie by by\u0142o, aby projekt mia\u0142 struktur\u0119 katalog\u00f3w niezale\u017cn\u0105 od IDE, ale jak powinna ona wygl\u0105da\u0107? Wed\u0142ug mnie tak: include [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[179,17,181],"_links":{"self":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/642"}],"collection":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/comments?post=642"}],"version-history":[{"count":2,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/642\/revisions"}],"predecessor-version":[{"id":646,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/posts\/642\/revisions\/646"}],"wp:attachment":[{"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/media?parent=642"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/categories?post=642"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netrix.org.pl\/index.php\/wp-json\/wp\/v2\/tags?post=642"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}