• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Libraries and tools for C++
 

Libraries and tools for C++

on

  • 1,562 views

Slides from talk at FI MUNI 2012 - course C++ development. Libraries and continouous integration with Jenkins

Slides from talk at FI MUNI 2012 - course C++ development. Libraries and continouous integration with Jenkins

Statistics

Views

Total Views
1,562
Views on SlideShare
649
Embed Views
913

Actions

Likes
0
Downloads
6
Comments
0

5 Embeds 913

http://georgik.sinusgear.com 894
http://translate.googleusercontent.com 10
http://nodeslide.herokuapp.com 6
http://webcache.googleusercontent.com 2
http://feeds2.feedburner.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Libraries and tools for C++ Libraries and tools for C++ Presentation Transcript

    • Libraries and tools for C++ FI MUNI 26.11. 2012 Juraj Michálekblog: http://georgik.sinusgear.comtwitter: http://twitter.com/sinusgear
    • Something about me ;-)
    • ContentNode.js V8, Node bindingsGui QT, FLTK, FLUID, wxWidgetsSpecial HW Android NDK, ArduinoPatterns ACETools
    • Clone examples Available at GitHub: https://github.com/georgik/fimuni-c-cpp-examplesgit clone git://github.com/georgik/fimuni-c-cpp-examples.git
    • http://nodejs.org/
    • Architecture of Node.js
    • V84x4 Ford V8 engine
    • V8Googles open source JavaScript engine http://code.google.com/p/v8/
    • V8 in context of Chrome
    • GYPhttp://code.google.com/p/gyp/
    • GYP example
    • libuv – event loopCall callbacks Sleep
    • Sample server in JS
    • Node.js wraps
    • KnižnicaClanLib game Simple Development Kithttp://www.clanlib.org
    • KnižnicaMesa http://mesa3d.sourceforge.net
    • Dino
    • GUIGraphic User Interface
    • Vhodné knižnice QT FLTK wxWidgets
    • QT Nokia:http://qt.nokia.com
    • QTprodukt firmy Trolltech, neskôr Nokialicencie: open source aj komrčnéknižnica vznikla v roku 1996podporuje C++ a Javu
    • PlatformyMS/WindowsUnix/X11 - Linux, Sun Solaris, HP-UX,Compaq Tru64 UNIX, IBM AIX, IRIX, Mac OSXEmbedded - Linux platforms with framebuffersupport.
    • QT Creator IDEnástroj na tvorbu GUIrozvrhnutú plochu ukladá do XML súboruz XML definície sa generuje kód programu
    • Kompiláciauloženie projektuvytvorenie Makefile z projektu qmake -o Makefile test.prokompilácia make
    • Linguistnástroj na preklad aplikáciiumožňuje oddeliť kód od textovprekladateľ a programátor pracujúsamostatne
    • Amélia
    • KDE
    • FLTKhttp://www.fltk.org
    • Knižnica FLTKThe Fast Light Tool KitAutor: Bill Spitzakvenoval sa vývoju rozhraní pre SunMicrosystemsveľa myšlienok zjednodušil a vložil do kitunízko-úrovňová kompatibilita - 10% odlišnosti
    • PlatformyUnix, LinuxMicrosoft WindowsMacOSs podporou OpenGL a GLUT
    • FLUIDFast Light User-Interface Designerjednoduchý designer na tvorbu GUI
    • wxWidgethttp://www.wxwidgets.org/
    • wxGlade
    • Android – Native Development Kithttp://developer.android.com/sdk/ndk/Pozor! App nemusí byť optimálnejšia než napísaná v Jave
    • NDKstiahnuť SDK a NDKexport PATH=$PATH:/cesta/sdk/tools:/ceta/ndkcd /cesta/ndk/samples/hello-jniandroid update project -p . -sndk-buildant debug
    • Adobe Alchemyzaujímavý experimentC/C++ kód skompilovaný pre FlashPlayer AVM2prenositeľnosť príklad: Doom http://labs.adobe.com
    • Arduinohttp://www.arduino.cc/playground/Interfacing/CPPWindows
    • ACEThe ADAPTIVE Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.htmlOpen source C++ framework reactor, proactor acceptor, connector
    • Java Native Interface - JNIpublic class HelloWorld { private native void sayHello(); public static void main(String[] args) { System.loadLibrary("library"); new HelloWorld().sayHello(); }}
    • http://www.boost.org “...one of the most highly regarded and expertly designed C++ library projects in the world.” Herb Sutter and Andrei Alexandrescu
    • Boost
    • Boost Test LibraryTest everything that could possibly breakjednoduchá tvorba tescasovTestSuite – TestCasetest je spustiteľný programbjam integruje spúšťanie testov
    • TestCaseusing namespace boost::unit_test_framework;/** * Test basic marshaller functionality */void testServerQuery(){ ServerQuery query = ServerQuery(); query.session = "112"; query.userId = "janko"; BOOST_CHECK_EQUAL( query.sessionAsChar(), "112" ); BOOST_CHECK_EQUAL( query.userIdAsChar(), "janko" );}
    • Jamnáhrada Makefilerozšíriteľné fukncieautomatická detekcia header filesprenositeľné: Unix, Windows, VMS, Macmalý CPU overheadbuild obrovských projektovškálovateľné
    • jam + TestCaseJamfile (Jamroot) import testing ; run tests/testServerQuery.cpp server ;Shell $ bjam ...patience... ...found 2 targets... ...updating 2 targets... *** test passed ***
    • Valgrind debugging a profiling memcheckhelgrind - race condition, thread profiling
    • Modes debugger Local application Attach to local processAttach to remote process Post-mortem
    • Application crashed Post-mortem analysisImage from memory: coredump
    • Quick analysis of coredump
    • Strace
    • Mutextracemutextrace ./mutex-tester-app param1 param2 lock #1, free -> thread 1 init #2 lock #2, free -> thread 1 unlock #1 lock #1, free -> thread 1 init #3 lock #3, free -> thread 1 unlock #1
    • Maven pre C++web: http://maven.apache.org mvn [parametre|ciele]súbor s definíciou projekt pom.xmlplugin pre C++ native-maven-plugin
    • Kontinuálna integráciarýchla kontrola po commiteJenkins CI – príklad: http://ci.sinusgear.com
    • GIToproti SVN možnosť lokálných commitovSocial Coding http://www.github.com
    • Source Control & Project Management http://trac.edgewall.org http://trac-hacks.org/
    • GNU a WindowsMinimalist GNU For Windows http://www.mingw.orgCygwin http://www.cygwin.com http://cygwinports.dotsrc.org/
    • Pythonsilný objektovo orientovaný jazykplatformovo nezávislýintegrovateľný s C a C++ http://www.python.org http://www.py.cz
    • Twistedudalosťami riadený sieťový frameworkpodpora TCP, UDP, SSL/TLS, multicastUnix socketsveľké množstvo protokolov HTTP, NNTP, IMAP, SSH, IRC, FTP... http://twistedmatrix.com/trac/
    • ProjectGitHub http://www.github.comGoogle Code http://code.google.com/opensourceSourceForge http://sourceforge.netFreeCode http://freecode.comCodePlex – MS Platforma http://codeplex.com
    • Atomic Tanks as open source Open source it. Somebody can continue in your work http://atanks.sf.net
    • OhlohCompare open source projects http://www.ohloh.net
    • se-radio.nethttp://www.se-radio.net
    • A je tu záverOtázky?
    • EOF FI MUNI, Brno 2012 Juraj Michálekblog: http://georgik.sinusgear.comtwitter: http://twitter.com/sinusgear