Návody na použití IDE Eclipse

Dokument vytvořil Petr Švenda, jakékoli připomínky piště prosím na svenda@fi.muni.cz

Instalace IDE Eclipse - Windows

  1. TDM-MinGW (MinGW s aktualní verzí překladače GCC): http://tdm-gcc.tdragon.net/download
    • sada překladových GNU nástrojů z prostředí UNIXu použitelná pro vytváření spustitelných aplikací na OS MS Windows
    • používá gcc verze 4.5.1 (zjistíte pomocí gcc –version)
    • automaticky přidá do proměnné prostředí PATH cestu k překladači (např. C:\MinGW\bin)
    • obsahuje MinGW DBG
  2. Eclipse IDE for C/C++ Developers (Eclipse + CDT plugin): http://www.eclipse.org/downloads/
  3. Restartovat PC

Základní nastavení

  • Klávesové zkratky - Použití klávesových zkratek pro často používané činnosti výrazně usnadňuje vývoj programu. Namísto hledání položky nebo ikony v menu můžete akci spustit předdefinovanou sekvenci klaves. Defaultní nastavení klavesových zkratek po instalaci Eclipse lze změnit, pokud vám nevyhovuje nebo jste zvyklí na rozložení zkratek z jiného vývojového prostředí. Vhodné rozložení záleží na vaší preferenci, pokud ještě nemáte své oblíbené rozložení, tak doporučuji použít rozložení MS Visual Studia. Existuje slušná pravděpodobnost, že v budoucích projektech nebo zaměstnání budete v tomto IDE pracovat a navíc Eclipse přímo obsahuje předdefinovanou sadu klávesových zkratek pro Visual Studio. Pomocí nabídky hlavního menu Window→Preferences se dostanete do nabídky obsahující většinu konfigurovatelných nastavení Eclipse, které nesouvisí přímo s konkrétním projektem. Rozložení klávesových zkratek najdete v nabídce General→Keys. Nastavte položku Scheme na Microsoft Visual Studio. Přímo zde můžete doplnit nebo změnit zkratky pro další akce. Vyberte akci podle jména (název cílové akce, kterou chcete opatřit zkratkou, si předtím najdete v hlavním menu nebo u ikony). Doporučuji nastavit zkratky ještě alespoň pro vkládání breakpointů (Toggle breakpoint, např. F9), rozložení oken při psaní kódu (Show Perspective C/C++, např. Ctr+Shift+C), rozložení oken při ladění kódu (Show Perspective Debug, např. Ctr+Shift+D) a další, které budete často používat.

  • Překladač - TODO
  • Nastavení pro debugging - TODO
  • Umístit (prázdný) soubor .gdbinit do adresáře projektu (např. C:\Users\Petr\workspace\HelloWorld\) - při nenalezení souboru vzniká při ladění chyba .gdbinit: No such file or directory

Vytvoření a kompilace nového projektu

  • Vytvoříme nový C projekt (Alt+Shift+N).

  • Vyplníme jméno projektu, zvolime typ projektu ANSI C Hello World a MinGW GCC toolchains.

  • Vyplníme základní informace o projektu (Basic settings). Není nutné vyplňovat nic zvláštního. Stiskneme tlačítko Finish.

  • V tuto chvíli máme funkční prototyp programu HelloWorld. V pravé části (Project explorer) je struktura souborů a dalších informací právě vytvořeného projektu Test1 (typicky je zde více než jeden projekt zároveň). Zdrojový kód programu je ve složce src pod názvem Test1.c. Po dvojkliku na Test1.c se otevře v prostředním okně editor se zvýrazňováním syntaxe, ve kterém soubor editujete. Ve spodní části je sada záložek, z nichž v tuto chvíli nějdůležitější je Console. Jde o přepis obsahu příkazové řádky tak, jako kdybyste překlad a samotny program spouštěly v terminálu na Aise. V záložce Console se zobrazuje i standardní výstup vašeho programu (to co vypišete na obrazovku) a mužete vepisováním zadávat data pro standardní vstup (pokud je váš program vyžaduje). V tuto chvíli je v ní zobrazem výsledek překladu nově vytvořeného projektu.

  • Změníme mírně parametry překladače gcc tak, aby odpovídal požadovaným parametrům pro odevzdávání domácích úloh. Pravým myšítkem klikneme na projekt Test1 v okně Project Explorer a vybereme volbu Properties. V záložce C/C++ Build→Settings→GCC C Compiler→Warnings přidáme volbu Pedantic (-pedantic) a v GCC C Compiler→Miscellaneous přidáme do Other flags textově volbu -std=c99 (pro překlad dle standardu C99). Změny potvrdíme pomocí OK.

  • Okno Console nyní obsahuje výsledky překladu s dodatečnými parametry.

  • Zkompilovaný program spustíme pomocí volby Run→Run. V okně Console se zobrazí výstup programu.

  • Spustitelný soubor je vytvořen v adresáři projektu na disku. Přesné umístění závisí na vašem nastavení a bude relativní k základní cestě, kterou jste v Eclipse nastavili na začátku jako workspace (např. c:\Users\Petr\workspace\). V případě našeho projektu bude výsledná binárka na cestě c:\Users\Petr\workspace\Test1\Debug\Test1.exe pro překladovou konfiguraci umožňující ladění (tzv. Debug) a na cestě c:\Users\Petr\workspace\Test1\Release\Test1.exe pro konfiguraci bez ladících symbolů a se zapnutými optimalizacemi. Mezi překladovými konfiguracemi se přepínáme pomocí ikony na liště (viz. obrázek). Program se typicky vyvíjí v konfiguraci Debug. Poté se překládá v konfiguraci Release pro předání zákazníkovi (POZOR - program je nutné znovu důkladně otestovat, neboť funkční verze Debug nemusí automaticky znamenat funkční verzi Release - typickým problémem je nekorektní zápis za konec pole).

Ladění v Eclipse (Debugging)

Bude doplněno
  • Nastavení argumentů příkazové řádky pro ladění. Provedeme v nabídce Run→Run configurations→C/C++ Application→Arguments. Základní cesta při laděni je cesta kořene projktu. Pokud tedy chceme poskytnout na vstup cestu k souboru z podadresáře \data, tak napíšeme data\jméno_souboru.

Základní problémy (Troubleshooting)

  • Při ladění se zobrazuje hláška „mi_cmd_var_create: unable to create variable object“. Důvodem je existence proměnných v okně Expressions, které již v kódu neexistují (např. zapomenuté z předchozích ladících seancí). Řešením je odstranění neexistujících proměnných z výpisu Watch. Viz. http://embdev.net/topic/129677
  • Při ladění se zobrazuje chybová hláška .gdbinit: No such file or directory. Řešením je umístit (prázdný) soubor .gdbinit do adresáře projektu (např. C:\Users\Petr\workspace\HelloWorld\).
  • Při ladění se nezobrazuje v okně Console text vypsaný pomocí puts, printf apod. Důvodem je výpis až při naplnění interního bufferu pro výstup nebo výskytu operace, která výpis vynutí. Řešením je explicitně vybutit výpis pomocí příkazu fflush(stdout); (standardní výstup) resp. fflush(stderr); (standardní chybový výstup).
  • Při překladu dojde k chybě a zobrazí se …mingw32/bin/ld.exe: cannot open output file xxx.exe: Permission denied. Důvodem je nemožnost zapsat kód programu do spustitelného souboru. Nejčastěji proto, že je soubor xxx.exe právě spuštěn - např. kvůli ladění. Řešením je zkontrolovat v okně Debug seznam spuštěných procesů a ukončit pomocí Run→Terminate. Pokud nepomůže, tak v seznamu procesů (Task manager na Windows, ps na Unixu) zkontrolovat, zda program xxx.exe stále neběží a ukončit jej. Ukončit i process gdb, pokud běží.
  • Potřeba změnit základní adresář (workspace) Eclipse. Window→Preferences→General→Starup and Shutdown→Workspaces. Check prompt for workspace at startup. Veškeré nastavení Eclipse k danému workspace je uloženo v adresáři .metadata. Zkopírováním z předchozího do nového workspace si přeneseme nastavení klávesových zkratek, rozložení oken atd.
QR Code
QR Code public:pb071_eclipse (generated for current page)