🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309848

Rozwój złożonych aplikacji/systemów w C/C++ w Linux-ie

#309848
From: Szyk Cech
Date: Sun, 14 Apr 2019 12:29
75 lines
4689 bytes
Witam
Rozwijam własne projekty pisane w C++ z Qt. Te projekty robią się coraz 
bardziej złożone - już nie jest to jeden exe ale również inne biblioteki 
publikowane na Lgpl do tego moje własne biblioteki (w tym pluginy).

[MOJE PODEJŚCIE]
Ja te projekty do tej pory rozwijam w ten sposób, że mam katalog ze 
źródłami. W nim podkatalogi z aplikacjami (exe) oraz podkatalog Libs z 
moimi bibliotekami i z pod katalogiem 3rdparty w którym trzymam 
biblioteki zewnętrzne (na Lgpl).
Hierarchia przykładowego projektu Textprofan2 wygląda tak:
├── Src
│   ├── Libs
│   │   ├── 3rdparty
│   │   │   ├── Hunspell
│   │   │   ├── KSyntaxHighlighter
│   │   │   │   ├── extra-cmake-modules
│   │   │   │   └── syntax-highlighting
│   │   │   └── qtcsv-1.5
│   │   ├── Common
│   │   ├── Editor
│   │   ├── Message
│   │   └── TextToSpeechConfig
│   └── Textprofan
│       ├── ColorSchemes
│       ├── Csv
│       ├── Images
│       ├── Src
│       │   ├── Models
│       │   ├── Widgets
│       │   └── Windows
│       ├── Translations
│       └── Txt

W plikach projektów qmake i cmake mam dodane wpisy gwarantujące 
umieszczanie plików wynikowych w katalogu Texprofan2-work (exe lądują w 
tym podkatalogu, natomiast biblioteki w podkatalogu Libs).
Wtedy uruchamiam te projekty w środowisku z odpowiednią wartością 
zmiennej LD_LIBRARY_PATH.
Do uruchamiania programu bez środowiska stosuję skrypt który ustawia 
LD_LIBRARY_PATH.
I to działa. Jednak pojawiły się problemy.

[PROBLEMY Z MOIM PODEJŚCIEM]
Problem się pojawia wtedy gdy chcę robić paczki (snap, flatpack czy 
appimage - tak by nie ograniczać się do pojedynczych distro, których 
nowe wersje wychodzą co chwilę - co potencjalnie rodzi nowe problemy).
Problem pojawia się wtedy, gdy ja w moich skryptach budowania mam podane 
katalogi docelowe - co jest nie dopuszczalne dla systemów budowania. Dla 
nich dopuszczalne i nawet oczekiwane są katalogi instalacyjne (np 
/usr/bin czy /usr/local/bin czy /opt/bin/ - nigdy nie wiem gdzie te moje 
programy powinny lądować w przypadku budowania paczek ani w przypadku 
instalacji bez paczek).

[ALTERNATYWNE PODEJŚCIE 1]
Można by po każdej zmianie w programie budować paczkę i instalować 
program od nowa (z zachowaniem ustawień). Tak wyglądała moja praca gdy 
programowałem aplikacje na Android-a (zawsze trzeba było budować do 
początku całą paczkę apk). Trwa to wieki całe - więc chyba nie tędy droga...

[ALTERNATYWNE PODEJŚCIE 2]
Można by budować program i go instalować do systemu nadpisując pliki 
zainstalowane wcześniej. Jednak to nie jest możliwe w przypadku 
wspomnianych paczek gdyż one uruchamiają programy w piaskownicy.

Stąd moje pytanie końcowe:
Jak są rozwijane złożone projekty takie jak np. Kde, Libre Office czy 
Firefox? W sensie tego jak budują i uruchamiają te swoje programy. Czy 
mają wierną kopię środowiska uruchomieniowego i tam kopiują te pliki i 
je uruchamiają? Czy może nadpisują zainstalowane programy w systemie? 
Czy może za każdym razem budują całe pakiety i instalują je normalnie - 
tylko jak wtedy uruchamiać debuger czy profiler?!?

z góry dzięki i pozdro
Szyk Cech
Technical Details
Message-ID: <LIFsE.28938$Df6.26698@fx30.fr7>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder7.news.weretis.net!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fx30.fr7.POSTED!not-for-mail

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!feeder.erje.net!1.eu.feeder.erje.net!weretis.net!feeder7.news.weretis.net!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!85.12.16.70.MISMATCH!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer01.fr7!futter-mich.highwinds-media.com!news.highwinds-media.com!fx30.fr7.POSTED!not-for-mail
Newsgroups: pl.comp.lang.c
X-Mozilla-News-Host: snews://newshosting.com:563
From: Szyk Cech <szykcech@spoko.pl>
Subject: Rozwój złożonych aplikacji/systemów
 w C/C++ w Linux-ie
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
MIME-Version: 1.0
Lines: 75
Message-ID: <LIFsE.28938$Df6.26698@fx30.fr7>
X-Complaints-To: abuse(at)newshosting.com
NNTP-Posting-Date: Sun, 14 Apr 2019 12:29:31 UTC
Organization: Newshosting.com - Highest quality at a great price! www.newshosting.com
Date: Sun, 14 Apr 2019 14:29:26 +0200
X-Received-Bytes: 4473
X-Received-Body-CRC: 3675073057
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit