|
Posledni aktualizace: 5.10.2009 Nejprve spustime Visual Studio a vytvorime novy projekt. ![]() Zvolime moznost Win32 console application, pojmenujeme projekt (zde cv4), pro ten se vytvori automaticky novy adresar, vybereme korenovou cestu k projektu (zde D:\Documents\Develop\PB161). Vysledny projekt bude v adresari D:\Documents\Develop\PB161\cv4. ![]() Pokracuje do detailnejsich nastaveni tlacitkem 'Next'. ![]() Ponechame typ aplikace 'Console application', odstranime 'Precompiled header' (pro pouziti ve vetsich projektech je to jinak velmi vhodna moznost - umoznuje knihovny a struktury pouzivane v kodu prekladat pouze jednou, prestoze jsou vkladany (include) na vice mistech v kodu. Casto pouzivane knihovny/struktury je pak nutne umistit od souboru stdafx.h resp. stadafx.cpp. Doba prekladu projektu se tak vyrazne zkrati). Projekt vytvorime pomoci tlacitka 'Finish' ![]() Ziskavame zakladni soubory projektu. V leve casti (Solution Explorer) vidime soubory cv4.cpp (to je soubor, ktery nas v tuto chvili jako jediny zajima) a dale soubory stdafx.h a stdafx.cpp (tyto soubory obsahuji typicky knihovny/struktury vyuzivane v kodu, ktere chceme mit moznost preklad pouze jednou - viz 'Precompiled header' vyse. Pomoci dvojkliku si otevreme vybrany soubor. ![]() Upravime predgenerovany kod na kod, ktery lze pozdeji prekladat na aise. Predgenerovany kod obsahuje moznost prekladat projekt v modu Ascii nebo Unicode (default volba). V pripade ASCII ma znak (char) retezce delku jeden bajt, v pripade Unicode ma jeden znak (char) retezce delku 2 bajty (UTF-16). Visual Studio vyuziva makra TCHAR, ktere je podle zvoleneho typu prekladu zmeneno na 'char' nebo 'wchar'. Opravime '_tmain na main, _TCHAR* na char*' a odstranime vkladani hlavickoveho souboru 'stdafx.h' (#include "stdafx.h") a naopak pridame hlavickovy soubor pro funkce pracujici se vstupem a vystupem (<stdio.h> nebo <iostream>). ![]() V nastaveni projektu (Alt+F7) v zalozce Configuration properties ->General zmenime Character set z 'use Unicode Character Set' (Unicode) na 'Not Set' (ASCII). ![]() ![]() ![]() Nyni jsme pripraveni pro prvni preklad projektu. Preklad se provadi v nabidce 'Build'. Pomoci Build Solution prelozime vse obsazeno v aktualnim 'Solution' - to muze obsahovat vice projektu. Konkretni projekt projekt prelozime (F7, ale prirazena hodnota klavesove zkratky se muze menit - naucte/nastavte si tu, ktera vam nejvice vyhovuje). Soubory, ktere jsou jiz prelozeny a nebyly meneny se znovu neprekladaji. Pokud chcete vynutit preklad vsech souboru, pouzijte 'Rebuild Solution' resp. 'Rebuild Project'. V nasem pripade obsahuje 'Solution' pouze jediny projekt a tyto moznosti splyvaji. Obecne staci pouzivat preklad jednotliveho projektu (F7). ![]() Vysledek prekladu mame v okne 'Output'. Probehne kompilace jednotlivych souboru (vypis jmen cv4.cpp) a linkovani. Projekt se neprelozi, pokud dojde behem prekladu k chybe (error). Preklad se provede, pokud jsou vypsany nejake varovani (warning), ale je dobre zamyslet se nad jejich vyznamem. Preklad by mel skoncit vypisem ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== nebo v pripade, ze prekladame nezmeneny, jiz prelozeny projekt(y)========== Build: 0 succeeded, 0 failed, 1 up-to-date, 0 skipped ==========
.Pokud se pri prekladu vyskytnou chyby, je nutne je opravit. V teto chvili muzeme zacit implementovat zadany ukol a provadet jeho ladeni. Vzhledem k potrebe nakonec program prelozit a odevzdat na aise je dobre cas od casu (po implementaci nove funkce apod.) vyzkouset preklad na aise. Postupne zkouseni nam umozni drive detekovat problem mezi prekladaci ve Visual Studiu a g++ na aise (ne vse co lze prelozit ve Visual Studiu lze prelozit na aise pomoci g++ a naopak. Zakladni seznam problematickych konstrukci najdete zde). Predevsim je nutne se vyhnout pouziti proprietarnich funkci pro OS MS Windows). ![]() Predpokladejme, ze nyni mame funkcni kod ve Visual Studiu a potrebujeme jej prenest a zkompilovat na aise. Pro preneseni vyuzijeme freeware program WinSCP ("http://www.winscp.org"). Nejprve vytvorime novou seanci na aisu a ulozime si ji pomoci tlacitka 'Save'. ![]() Zadame heslo na aisu. ![]() Leve okno obsahuje pohled na nas lokalni soubory system, prave okno souborovy system na aise. Vytvorime si vhodne pojemnovany adresar (klav. zkratka F7) pro programy (zde PB161\cv4). V tomto adresari vytvorime soubor (Shift+F4) pro nas program (zde cv4.cc). ![]() ![]() Do otevreneho okna s obsahem souboru cv4.cc zkopirujeme kod naseho programu (uzitecne klav. zkratky jsou Ctrl+A - vyber celeho kodu, Ctrl+C - kopirovani do schranky, Ctrl+V - vlozeni ze schranky). Obsah souboru cv4.cc ulozime pomoci Ctrl+S. ![]() Pri prvnim ukladani se WinSCP dotaze znovu na heslo na aisu. Nyni mame soubor prenesen a muzeme pristoupit ke kompilaci na aise. Okno s obsahem souboru cv4.cc je vhodne nechat otevrene a pripadne zmeny ve Visual Studiu do nej (jako celu kod souboru cv4.cpp) kopirovat. ![]() Pro preklad je nutne se prihlasit na aisu, napriklad pomoci freeware programu Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/). Nejprve vytvorime novou seanci na aisu, ulozime pomoci tlacitka 'Save' a otevreme spojeni pomoci tlacitka 'Open'. Vyplnime prihlasovaci jmeno a heslo na aisu. ![]() Pro preklad se nejprve prepneme do adresare PB161 (prikazy 'cd') a overime si, ze adresar obsahuje soubor cv4.cc (prikaz 'ls'). Pridame si balik obsahujici g++ (prikaz 'module add devel') a spustime kompilaci (prikaz 'g++ -ansi -Wall -o cv4 cv4.cc'). Vysledkem je prelozeny spustitelny soubor cv4, ktery spoustime pomoci prikazu './cv4'. ![]() Nyni pristoupime k modifikaci kodu ve Visual Studiu a prubeznemu testovani funkcnosti na aise. Modifikujeme kod tak, aby umoznoval pouzit vstupni a vystupni proudy (cin, cout, hlavickovy soubor <iostream>, using namespace std;). ![]() Pomoci postupu popsaneho v predchozich krocich preneseme novy kod na aisu (kopie kodu do okna WinSCP souboru cv4.cc a ulozeni pomoci Ctrl+S). Prelozime soubor cv4.cc. Po spusteni './cv4' by melo dojit k vypsani naseho vystupu. ![]() Pokud slo vse dobre, mel by prelozeny program ve Visual Studiu a pomoci g++ na aise fungovat stejne. Pokud to tak funguje, tak vyborne! Pokud ne, mozna byste uvitali pridani/upresneni nekterych kroku - napiste mi prosim. Pokud narazite na jakykoli relevantni problem, budu vam vdecen za jeho popis (kontakt je na konci stranky). Diky! |
![]() OpenPGP key : 0x89CEB31C |