Jak na vývoj v C++?

ennyque

Jak na vývoj v C++?
« kdy: 21. 07. 2012, 15:43:20 »
Zdravím,
   po letech víceméně programování pod windows v C++, bych se rád podíval na Linux. Vede mne k tomu poptávka po jedné pozici.
Chtěl jsem se Vás, zkušených, zeptat a poprosit, jaké prostředky se k tomu používají. Našel jsem k tomu jeden článek na linuxsoft.cz, ze kterého budu citovat:

Pro vývoj v C nezbytně potřebujeme pouze textový editor (nejčastěji Vim, Emacs, ...) a překladač (nejčastěji gcc, který je součástí všech běžných distribucí Linuxu). Příznivci grafického prostředí ocení nějaké IDE, například KDevelop nebo Anjuntu, znalci Vimu a Emacsu si IDE vytvoří ze svého editoru. K ladění slouží gdb, případně s nějakou nadstavbou typu ddd, KDdb nebo xxgdb. Na odhalování paměťových chyb se hodí valgrind. Samostatnou kapitolu tvoří sestavování větších projektů. Základem je make a dále se používá zeména autoconf a automake. Nenechte se tímto výčtem programů odradit, v prvních dílech si vystačíme s editorem a vlastním překladačem.

Jak, prosím, vyvíjíte pod Linuxem v C++ vy a jak je to v komerční sféře? Na gcc, make a gdb si pamatuju ze školy, ale gdb u větších aplikací si nedovedu představit. Řekněme, že budu chtít naprogramovat daemona, který naslouchá na nějakém portu, pro každého klienta bude mít speciální thread, a data od klientů bude zapisovat třeba do oracle databáze? Je to jen příklad, a\le podobné úkoly by mne tam čekaly.

Všem moc děkuju za rady a připomínky
Honza
« Poslední změna: 30. 07. 2012, 16:06:51 od Petr Krčmář »


vvv

Re:jak na program v C++?
« Odpověď #1 kdy: 21. 07. 2012, 16:17:57 »
Zkus se podivat na Eclipse CDT nebo Code::Blocks.

aaaaaaaa

Re:jak na program v C++?
« Odpověď #2 kdy: 21. 07. 2012, 16:43:57 »
Ked si stiahnes IDE (spominane alebo napr. QtCreator), tak budes programovat skoro ako na Windowse, aj bez znalosti gdb a pod. Neviem o tom, ze by niekto niekomu nutil Emacs alebo VIM a ak dokazes programovat dost rychlo aj v IDE, tak to asi nikomu nebude vadit.
Dost ostatneho zalezi aj na firme - casto sa pouziva Boost, ktory asi poznas aj z Windowsu, ale su tu aj ine casto pouzivane lib-ky, ale to by bolo lepsie ucit sa cielene.

Aj napriek napisanemu urcite odporucam skusit Valgrind a ddd. Prve je subor nastrojov na kontrolu memory leakov, hranic poli a dalsich problematickych miest, pricom to zvlada aj vygenerovat statistiky, co ako dlho a kolkokrat bezalo, co je dobre na profilovanie.
ddd zase dokaze nakreslit objekty a pointre medzi nimi (pocas krokovania v programe), co je niekedy dobre pre predstavivost, ked clovek nechce skumat, co ten druhy vlastne myslel.

Re:jak na program v C++?
« Odpověď #3 kdy: 21. 07. 2012, 18:28:09 »
Zdravím,
momentálně pracuji jako C programátor, vyvíjím pro Widle a pro QNX. Pro vývoj na QNX využívám kombinaci vim + gcc + gdb. Dosud jsem narazil jen na jednu zvláštnost gdb, který v jednom případě tvrdil, že funkce byla zavolána s NULLovým pointrem a to zjevně nebyla pravda. Nicméně i to mě později navedlo na chybu, která byla až ve volané funkci - byl omylem zavolán memset na pointer a ne na paměť, kam ukazoval. Jinak osobně jsem si v případě problémů vystačil s vypsáním backtracu, vypsáním některých proměnných a breakpointy. To všechno lze v gdb zvládnout poměrně snadno.

eMko

  • ****
  • 456
    • Zobrazit profil
    • E-mail
Re:jak na program v C++?
« Odpověď #4 kdy: 21. 07. 2012, 19:39:54 »
Eclipse (CDT). Ale jenom z lenosti se učit zacházet s KDevelop nebo Code::Blocks :)


ava

Re:jak na program v C++?
« Odpověď #5 kdy: 22. 07. 2012, 15:17:37 »
Pouzivam netbeans a vcelku to ujde (prijde mi to vyrazne lepsi nez msvc express 2010, snad az na debugger). Nicmene, c++ je jazyk z pekla, pokud nedelas komercne nebo nejsi skutecny fanda C++, delej trebas v D nebo v necem kde clovek muze mit z prace pozitek a byt produktivni.

ennyque

Re:jak na program v C++?
« Odpověď #6 kdy: 22. 07. 2012, 16:54:49 »
Děkuju všem.

C++ jsem dělal komerčně pod Microsoftem a líbilo se mi, jsem fanda. Až na to, že jsem používal prolínající se ATL a MCF déle, než trh požadoval. Teď se pořádně podívám na STL a ostatní knihovny.

Obecně bych desktopové aplikace, ty pro widle, mohl dělat v C#, ale zde je velká konkurence a já neprůbojný.

Nakonec jsem si nainstaloval Eclipse (cdt) pod CentOS a připadá mi mnohem propracovanější než VS2010.

Ještě bych vás chtěl poprosit o navedení na nějaké téma ohledně spolupráce C++ s Oraclem, pokud to někdo z vás už dělal.

Případně díky
Honza

Ivan

Re:jak na program v C++?
« Odpověď #7 kdy: 24. 07. 2012, 11:48:35 »
Ještě bych vás chtěl poprosit o navedení na nějaké téma ohledně spolupráce C++ s Oraclem, pokud to někdo z vás už dělal.

Oracle dodava dve knihovny (OCCI / C++) a OCI. OCCI je pluskova knihovna, je docela nova, a jeste neni uplne stabilni.
Navic byla kompilovana nejakou verzi g++, ktera nema kompatibilni ABI se soucastnym gcc( vyjimka vyhozena z OCCI nejde odchytit, misto toho to spadne na SEGFAULT). OCI je snad nejsilenejsi knihovna jakou jsem videl, je to neuveritelne komplexni moloch. Nad OCI existuje spousta C++ wrapperu, kazdej je necim specifickej a je tezko rict jakej doporucit.

Pokud je o ruzny OCI triky, tak jsou zajimavy tyhle projekty: billing modul Asterixu, wrapper pro Ruby a pro Perl. Knihovna OCIPL, a pak nejaku templatova knihovna postavena na boostu.

Sten

Re:jak na program v C++?
« Odpověď #8 kdy: 24. 07. 2012, 21:52:37 »
Používám KDevelop, ale starší verze (aktuální je 4.3.1) občas padaly, pokud jsem je moc vytěžoval, a měly velmi pomalé syntaktické vyhledávání. Tahle poslední zatím slouží výborně a má i dobrou podporu C++11. Rozhodně bych to doporučil vyzkoušet, IMO je to nejlepší C++ IDE, co lze používat v Linuxu.

ennyque

Re:Jak na vývoj v C++?
« Odpověď #9 kdy: 03. 08. 2012, 19:59:23 »
A mohu se zeptat, odkud jsi stáhnul Kdevelop 4.3.1. Na forech se píše, že vyžaduje kdelibs-devel v4.5.0 a to je prý verze z Centos 5, ve verzi 6.x jsou s ní prý problémy.
Díky

Waseihou

Re:Jak na vývoj v C++?
« Odpověď #10 kdy: 03. 08. 2012, 20:28:38 »
Citace
Řekněme, že budu chtít naprogramovat daemona, který naslouchá na nějakém portu, pro každého klienta bude mít speciální thread, a data od klientů bude zapisovat třeba do oracle databáze? Je to jen příklad, a\le podobné úkoly by mne tam čekaly.

Pokud jsi tak ještě neučinil, tak se určitě podívej na Boost a jeho knihovny. Pro toho daemona by se ti mohlo hodit boost.asio

http://www.boost.org/doc/libs/1_50_0/doc/html/boost_asio.html

, v examplech je toho celkem dost co by se dalo využít a dá se předpokládat že pokud se budeš držet boost a OCCI tak tvůj kód bude dokonce přenositelný. OCCI je podporován od Oracle 9i, takže by to mohla mít valná většina zákazníků, kterým ten produkt budete prodávat. Pro lepší kompatibilu ale asi bude nutné použít nějaký wrapper, ten si ale nejspíše budete muset stejně napsat a nebo už tam kam příjdete bude existovat.

Sten

Re:Jak na vývoj v C++?
« Odpověď #11 kdy: 03. 08. 2012, 20:39:52 »
A mohu se zeptat, odkud jsi stáhnul Kdevelop 4.3.1. Na forech se píše, že vyžaduje kdelibs-devel v4.5.0 a to je prý verze z Centos 5, ve verzi 6.x jsou s ní prý problémy.
Díky

Používám Kubuntu

s0

Re:Jak na vývoj v C++?
« Odpověď #12 kdy: 03. 08. 2012, 21:13:50 »
ad oracle a c/c++: já přísahám na tohle: http://orclib.sourceforge.net/

Matěj

Re:Jak na vývoj v C++?
« Odpověď #13 kdy: 05. 08. 2012, 14:12:00 »
Taky používám Netbeans (7.2) jako IDE a je to celkem fajn...