Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: ennyque 21. 07. 2012, 15:43:20

Název: Jak na vývoj v C++?
Přispěvatel: ennyque 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
Název: Re:jak na program v C++?
Přispěvatel: vvv 21. 07. 2012, 16:17:57
Zkus se podivat na Eclipse CDT nebo Code::Blocks.
Název: Re:jak na program v C++?
Přispěvatel: aaaaaaaa 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.
Název: Re:jak na program v C++?
Přispěvatel: Magog 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.
Název: Re:jak na program v C++?
Přispěvatel: eMko 21. 07. 2012, 19:39:54
Eclipse (CDT). Ale jenom z lenosti se učit zacházet s KDevelop nebo Code::Blocks :)
Název: Re:jak na program v C++?
Přispěvatel: ava 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.
Název: Re:jak na program v C++?
Přispěvatel: ennyque 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
Název: Re:jak na program v C++?
Přispěvatel: Ivan 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.
Název: Re:jak na program v C++?
Přispěvatel: Sten 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.
Název: Re:Jak na vývoj v C++?
Přispěvatel: ennyque 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
Název: Re:Jak na vývoj v C++?
Přispěvatel: Waseihou 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.
Název: Re:Jak na vývoj v C++?
Přispěvatel: Sten 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
Název: Re:Jak na vývoj v C++?
Přispěvatel: s0 03. 08. 2012, 21:13:50
ad oracle a c/c++: já přísahám na tohle: http://orclib.sourceforge.net/
Název: Re:Jak na vývoj v C++?
Přispěvatel: Matěj 05. 08. 2012, 14:12:00
Taky používám Netbeans (7.2) jako IDE a je to celkem fajn...