# [OT] Jakie polecacie IDE do programowania w C w Linuksie

## Pepek

Witam !

Pytanko nie związane bezpośrednio z Gentoo i może troszkę nietypowe, ale chciałem zapytać Was o zdanie. Jakie byście polecili mi IDE na Linuksa spełniające Moje Wymagania (TM) ?  :Wink:  Wymagania te to :

- zintegrowany debuger (może być nakładką na gdb) z możliwością wykonywania krokowego programów w trybach Stape Over (Przekraczania) i Trace Into (Wkraczania) umożliwiający również dodawanie zmiennych do listy zmiennych obserwowanych (Watch List)

- edytor z kolorowaniem składni, dopełnianiem kodu, podpowiadaniem typów argumentów danej funkcji, itp.

- możliwość wybrania na początku pracy jaki typ programu chcę pisać (C/C++/inne), konsolowy, GTK, itp.

- możliwość łatwego generowania plików *.po (*.pot) dla programów wielojęzycznych

- możliwość wybierania komponentów graficznych z listy gotowców dostępnych w danym toolkicie GUI (np. dla GTK, a jeszcze lepiej dla GTK2)

- możliwość automatycznego robienia całego "shitu" configure, make, itp.

- gadający po Polsku (niekonieczne, mile widziany dodatek)

- nie wymagający GNOME (KDE może być, GNOME ostatecznie też, ale tylko "z braku laku"  :Very Happy:  )

Skromne wymagania, nie ?  :Razz: 

A tak na poważnie, to mam za sobą doświadczenia tylko z programowaniem na windę (Delphi 6-8, Visual C++ 6, C++ Builder 6) i minimalne na Linuksa (prościutkie konsolowce pisane w KWrite i samemu kompilowane gcc).

Z tego, co znam to jest KDevelop (dla mnie byłby idealny), ale nie widziałem go w akcji i nie mam pewności, czy umożliwia szybkie (wybierając gotowe widgety) pisanie programów w czystym C korzystając z GTK2 (lub ostatecznie GTK) oraz anjuta, która ma możliwość wybrania aplikacji C/GTK, ale wymaga pełno GNOM-a i AFAIK nie jest po polskiemu.  :Wink: 

Doradźcie w miarę możliwości (każdy głos na wagę złotka (nie mylić ze sreberkiem)  :Very Happy:  ).

Pozdrówki.  :Cool: 

----------

## Strus

```
emerge kdevelop 
```

 napewno miło Cię zaskoczy   :Smile: 

----------

## Rav70

Niczego lepszego od kdevelop jak dotąd nie znalazłem.

Pozdr. Rav

----------

## vArDo

 *Pepek wrote:*   

> 
> 
> - możliwość wybierania komponentów graficznych z listy gotowców dostępnych w danym toolkicie GUI (np. dla GTK, a jeszcze lepiej dla GTK2)
> 
> 

 

Nie za bardzo rozumiem o co tutaj ci chodzi, czy chodzi ci o wklejanie samego kodu (GUI w kodzie), tak jak sie uzupelnia np HTML znacznikami i sobie tylko uzupelniasz, czy chodzi, np. o cos takiego jak Delphi. Jesli o to pierwsze to moze i cos takiego jest, jesli o to drugie to jedynym rozwiazaniem, ktore chyba jest stadardem w takim tworzeniu aplikacji GTK+ jest Glade, ale nie jest z niczym zintegrowany za bardzo ;/

Jesli chcesz juz takie srodowisko to KDevelop jest zdecydowanie najlepszy (ew. + QtDesigner, jesli ci nie zalezy zeby to bylo GTK+).

Ale moim zdaniem vim wymiata.

Pozdrawiam

vArDo

----------

## psycepa

no ja kiedys mialem jeszcze cos takeigo co sie nazywalo

BorlandX ale juz nawet nie pamietam jak to wygladalo, wiem ze mialem z tym siakies problemy, ale moze tobie sie uda :), sciagnac to mozna na stroniue borlanda, 

ja mimo wszystko pisze pod kdevelop, IMHO, idealne IDE:)

----------

## nelchael

 *Pepek wrote:*   

> Jakie byście polecili mi IDE na Linuksa spełniające Moje Wymagania (TM) ?  Wymagania te to :
> 
> - zintegrowany debuger (może być nakładką na gdb) z możliwością wykonywania krokowego programów w trybach Stape Over (Przekraczania) i Trace Into (Wkraczania) umożliwiający również dodawanie zmiennych do listy zmiennych obserwowanych (Watch List)

 

Kdbg

 *Pepek wrote:*   

> - edytor z kolorowaniem składni, dopełnianiem kodu, podpowiadaniem typów argumentów danej funkcji, itp.

 

SciTE, gVim

 *Pepek wrote:*   

> - możliwość wybrania na początku pracy jaki typ programu chcę pisać (C/C++/inne), konsolowy, GTK, itp.

 

A tego to nigdy nie rozumialem - program bedzie taki jak go napiszesz, nie taki jaki kreatorek na poczatku uruchomisz.

 *Pepek wrote:*   

> - możliwość łatwego generowania plików *.po (*.pot) dla programów wielojęzycznych

 

Bite me

 *Pepek wrote:*   

> - możliwość wybierania komponentów graficznych z listy gotowców dostępnych w danym toolkicie GUI (np. dla GTK, a jeszcze lepiej dla GTK2)

 

Glade, QTDesigner, FLUI, wxBuilder

 *Pepek wrote:*   

> - możliwość automatycznego robienia całego "shitu" configure, make, itp.

 

Nie jest to konieczne (patrz moja strona i configure-ng2)

 *Pepek wrote:*   

> - gadający po Polsku (niekonieczne, mile widziany dodatek)

 

SciTE, gVim - wszystko po polsku  :Smile: 

 *Pepek wrote:*   

> - nie wymagający GNOME (KDE może być, GNOME ostatecznie też, ale tylko "z braku laku"  )

 

SciTE, gVim  :Wink: 

 *Pepek wrote:*   

> Skromne wymagania, nie ? 

 

Małe  :Razz: 

----------

## quat

ja uwazam jak wiekszosc dotychczasowych postujacych kdevelop (chociaz mialem stycznosc troszke z anjuta i nie narzekam).

ale ponad wszelka watpliwosc vim rulz  :Very Happy:  najlepsze srodowisko do programowania a integracja zalezy jedynie od umiejetnosci programujacego/konfigurujacego.

----------

## Pepek

No dobra, zemergowałem sobie to kdevelop i jest ciekawe, ale IMO zdatniejsze do C++/Qt(KDE). Jak wybieram, że projekt ma być pisany w C, to dostaję wybór tylko pisania modułu jajka, aplikacji konsolowej, aplikacji dla GBA i dla GNOME. Ponieważ najbliższe tego, co chcę pisać (GTK2 + czyste C) jest ten projekt z GNOME, więc wybieram go, ale dla niego nawet autoconf+automake nie przechodzi, bo wymaga jakichś gnomowych rzeczy. Jeszcze wypróbuję tą anjutę, a o Glade nie słyszałem, poszukam ich stronki i poczytam sobie troszkę o tym.

Pozdrówki.  :Cool: 

----------

## ketjow

tez pisze w vi || kdevelop, ale slyszalem ze fajne jest tez eclipse-cdt. To taki eclipse (jak ktos pisal w javie to wie) tylko ze do C++. Troche wolny, no ale bardzo komfortowy. Od razu mowie ze nie probowalem bo musialbym na moim amd64 niezle kombinowac zeby go uruchomic, no ale w eclipse pisalem a to pewnie dosc podobne..

----------

## mdk

Hmm... nikt nie napisał o emacs'ie!. Testowałem różne środowiska (Anjuta, NetBeans do Javy, Eclipse, MonoDevelop) i w końcu wszystkie odinstalowałem. Najlepszy jest emacs + własne Makefile + edytory GUI (Glade to podstawa). Trzeba trochę czasu zainwestować w naukę/konfigurację/przyzwyczajenie ale warto. W jednym edytorze można pisać C, C++, Javę, C#, HTML, PHP i co tam kto chce - z podkreślaną składnią, helpem, auto-complete... etc. (to samo zresztą dotyczy vi/gvima)

Środowiska i wszystkie auto-generatory kodu to zjadacze czasu. To co się "zyska" na początku i tak się traci po jakimś czasie, jak próbujesz się zorientować "o co właściwie chodzi" w tym co zostało wygenerowane. A przerabiać/modyfikować trzeba (prędzej czy później) wszystko. 

I jeszcze jedno - w każdym ze środowisk które testowałem, coś było zrąbane z indentacją (tabowaniem).

----------

## Pepek

No i po sesji zacząłem się tym bawić, choć czasu wolnego malutko. Na razie najbardziej przypadło mi do gustu glade i dodatkowo anjutka. Ale przejdę do sedna, czyli do powodu, dla którego napisałem tego posta. Otóż wkurza mnie niemiłosiernie autoconf i automake i wszystkie rzeczy do tego potrzebne. Ze źródełek, które obecnie wraz z ikonkami zajmują mi ~ 40 KB tworzy mi to pakiet dystrybucyjny (całe drzewko plików + skrypty configure, Makefile, itp. spakowane do *.tar.bz2) o wielkości ~ 300KB !! Czy nie ma jakiegoś prostszego sposobu ? Oczywiście ręczne pisanie configure i Makefile-ów odpada. W tym wątku nelchael pisał o jego projekcie configure-ng2. Przyglądałem się temu, ale za bardzo nie czaję jak tam wszystko poustawiać, aby dało to się użyć w moim projekcie. Więc tu pojawia się prośba do nelchael-a :

Mógłbyś napisać jakieś HOW-TO or sth do tego configure-ng2 ? Bardzo by mi (i na pewno też innym) się przydało. Najlepiej pokaż jak to poustawiać dla jakiegoś przykładu (np. aplikacja z GUI pisana w C + GTK2, korzystająca z nls-a (gettext, generowanie plików *.mo, itp.), potrzebująca wrzucić kilka ikonek do $PREFIX/$PACKAGE/share, umożliwiająca odinstalowanie, itp., itd.).  :Very Happy: 

Pozdrówki.  :Cool: 

----------

## nelchael

 *Pepek wrote:*   

> Mógłbyś napisać jakieś HOW-TO or sth do tego configure-ng2 ? Bardzo by mi (i na pewno też innym) się przydało. Najlepiej pokaż jak to poustawiać dla jakiegoś przykładu (np. aplikacja z GUI pisana w C + GTK2, korzystająca z nls-a (gettext, generowanie plików *.mo, itp.), potrzebująca wrzucić kilka ikonek do $PREFIX/$PACKAGE/share, umożliwiająca odinstalowanie, itp., itd.). 

 

Mam zamiar dorobic dokumentacje do tego, ale dopiero po sesji (czyli jutro (mam nadzieje  :Smile:  )). configure-ng2 nie tworzy Makefile'ow. Dlaczego? Nie lubie auto-wygenerowanych Makefile'ow, bo szukanie w nich co niedziala jest bolem (wlasciwie to jest niewykonalne). Dlatego cng2 tworzy plikczek zawierajacy potrzebne -I, -L i -D, ktory trzeba dolaczyc do Makefile (include). Jako szczatkowa dokumentacja moga sluzyc: komentarze w pliku makefile.py oraz przyklady jak to wykorzystalem (w ncpufreqd, nclasses, erasms). Szczegolnie polecam xerasms, bo tam jest jak korzystac z --with i --without.

----------

## vArDo

 *Pepek wrote:*   

> No i po sesji zacząłem się tym bawić, choć czasu wolnego malutko. Na razie najbardziej przypadło mi do gustu glade i dodatkowo anjutka. Ale przejdę do sedna, czyli do powodu, dla którego napisałem tego posta. Otóż wkurza mnie niemiłosiernie autoconf i automake i wszystkie rzeczy do tego potrzebne. Ze źródełek, które obecnie wraz z ikonkami zajmują mi ~ 40 KB tworzy mi to pakiet dystrybucyjny (całe drzewko plików + skrypty configure, Makefile, itp. spakowane do *.tar.bz2) o wielkości ~ 300KB !! Czy nie ma jakiegoś prostszego sposobu ? 

 

Rzeczywiscie tutaj wielkie IDE sie nie popisuja  :Smile: 

 *Quote:*   

> 
> 
> Oczywiście ręczne pisanie configure i Makefile-ów odpada. 

 

Eee, no czemu?  :Razz:  Wiesz troche (2 tyg.) posiedzisz nad kilkoma HOW-TO + examples i bedzie okej  :Smile:  Przynajmniej na poczatek...

A tak naprawde to polecam swietny soft do budowanie wlasnego softu:

http://www.scons.org

Przynajmniej ja sie czuje zauroczony  :Smile:  Polecam man page + wiki i bedziesz wiedzial wszystko (no prawie, to jest  w trakcie rozwoju) co potrzebujesz. Swietnie sie nadaje wlasnie do takich malych projektow  :Smile:  Moj SConstruct do jedno plikowego programu uzywajacego gtkglextmm zajmowal kilka linii, ktore sa prawie calkowicie intuicyjne (do wielu plikow zajmowalby tyle samo - zaleznosci sa wykrywane automatycznie).

Wada jest oczywiscie mala powszechnosc sconsa, jednak w dzisiejszych czasach python to podstawa  :Very Happy:  (przynajmniej na Gentoo)

Na marginesie druga sprawa. Zbliza sie Anjuta2 i modularyzacja tego calego kolosa, wiec przymierzalem sie do napisania wlasnie,  takiego mini wizardo-druida do najpotrzebniejszych rzeczy do sconsa (a moze i jednoczesnie do autoconfa), co by ulatwic developerom tworzenie kodu, ale nie zasmiecanie plikow wokol niego.

Niestety czasami uczelnia zabiera mi wiekszosc czasu ;/ (nelchael chyba moze potwierdzic z autopsji), wiec nawet nie wiem czy zaczne w tym wieku, ale moze sie zbiore... Narazie czekam na anjute 2.0 w wersji +-stable i zobacze co to bedzie, ew. moznaby zrobic cos zupelnie osobno...

Pozdrawiam

vArDo

PS. Nie zagladalem do softu nelchaela, wiec nie wiem czy przypadkiem nie latwiej bedzie ci uzyc wlasnie tego.

----------

## k4sbasia

Ja też polecam Ci całym sercem Anjuta, jest bardzo dobre - warto spróbować

----------

## yuha

Próbowałem wielu IDE do C/C++, większość a nich wydaje się mocno przerośnięta i powolna - chyba dlatego sporo osób woli używać odpowiednio skonfigurowanego vima lub emacsa. Ostatnio zainteresował mnie Code::Blocks (http://www.codeblocks.org/) - niewielki, szybki, całkiem przyjemny w użyciu. Jak na razie nie widziałem jego ebuildu w portage, ale można samemu ściągnąć źródła z CVSa i Przetestować.

----------

## Zwierzak

A dla mnie i tak najlepszy był, jest i będzie KDevelop. W nim jest wszystko co potrzebuje ładnie umiescowione. Szkoa ze jeszcze nie maja wsparcia dla C# (kolorowanie juz jest) ale to da sie wytrzymac

----------

