====C#==== apt install dotnet-runtime-3.1\\ apt install dotnet-sdk-3.1\\ dotnet new console ... vytvory Hello world program\\ [[https://docs.microsoft.com/cs-cz/dotnet/core/tutorials/library-with-visual-studio-code|dotnet new classlib]] -n "MyTestNuGetLibrary" ... vytvori prazdnou knihovnu\\ dotnet build ... zkompiluje projekt definovany v csproj\ dotnet pack --interactive ... Vytvori NuGet balicek, interactive je pro nahrani do Artefakt repozitare pro autorizaci\\ ====Kompilace==== ==Kompilace s pouzitim staticke knihovny== gcc -c knih1.c; gcc -c knih2.c ... kompilace knih1 a knih2. Vytvori se objektove soubory knih1.o a knih2.o ve formatu ELF\\ ar rcs libkinh.a knih1.o knih2.o ... zabali staticke knihovny (objektove soubory) do archivu knihoven\\ export LIBRARY_PATH=~/lib;$LIBRARY_PATH ... nastavi cesty k objektum, ktere se hledaji behem kompilace\\ export CPATH=~/include;$CPATH ... nastavy cesty k hlavickovym souborum, ktere se hledaji behem kompilace\\ export C_INCLUDE_PATH=~/include;$C_INCLUDE_PATH ... jako CPATH\\ export CPLUS_INCLUDE_PATH=~/include;$C_INCLUDE_PATH ... jako CPATH, ale pro C++\\ #include "knih" ... deklarace knihovny libknih.a v kodu aplikace app.c\\ gcc -o app app.c -lknih ... kompilace aplikace app.c, vystupni soubor app, prilinkuje se knihovna libknih (dynamicke knihovny maji prednost)\\ gcc -o app app.c -L~/lib -I~/include -lknih ... kompilace, kde zadavam cesty k objektum (pokud neni zadana cesta v LIBRARY_PATH) a k hlavickam (pokud neni zadana v CPATH)\\ ==Kompilace s pouzitim dynamicke knihovny== gcc -fPIC -g -Wall -c knih3.c ... kompilace knihovny do objektu (knih3.o), s dynamickym adresovanim pameti (fPIC - Position Independent Code), ukaze Warningy (Wall) a debugovani informace (g)\\ gcc -shared -W1,-soname,libknih.so.1 -o libknih.so.1.0.1 knih3.o knih4.o ... vytvori dybamickou knihovnu (Shared Objects), se SOName libknih.so.1, obsahujici objekty knih3.o a knih4.o\\ gcc -o app app.c -l knih ... kompilace aplikace app s prilinkovanim dynamicke knihovny\\ gcc -o app app.c ./libknih.so.1 ... kompilace aplikace app s prilinkovanim dynamicke knihovny, cesta ke knihovne zadana z prikazu\\ prace s knihovnama na Unixu/Linuxu, viz. [[../os/unix-commands.html|Unixovy prikazy - knihovny]]. ==Kompilace na AIXu== Kompilace C programu na AIXu neni primocara v tom, ze AIX se standartne nedodava s C prekladacem. Existuji 2 moznosti: * [[http://www.bullfreeware.com/downloaded_50.php|gcc]] ... GNU prekladac s tim, ze je problem s linkovanim s knihovnama dodavanyma s AIXem zkompilovych pod original prekladacem. Ale na male projekty to lze pouzit * zakoupit vyvojove prostredi obsahujici original cc_r * stahnou evaluation verzi vyvojoveho prostredi [[https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?source=swg-xlcaix101&S_PKG=aix&lang=en_US&cp=UTF-8|XL C/C++]] nebo Visualage C, jejiz soucasti je i balicek s cc_r, viz [[http://www.ibm.com/developerworks/forums/thread.jspa?threadID=166589|info]] ===Programovaci jazyk C=== Odkaz na ucebni texty [[http://www.fi.muni.cz/usr/jkucera|Ing. Jana Kucery]] (FI) na C a C++\\ ==Navrh algoritmu== [[naval/popis.txt|popis souboru]]\\ [[naval/blud1.c|blud1.c]]+[[c/naval/bl.tbl|bl.tbl]] - Bludiste1 - program po zadani bludiste najde cestu ven\\ [[naval/blud3.c|blud3.c]] - Bludiste3 - Dijsk. algoritmus na zjisteni nejkratsi cesty z mistnosti\\ [[naval/blud4.c|blud4.c]] - Warshaluv algoritmus na zjisteni cesty ven z bludiste\\ [[naval/blud5.c|blud5.c]] - Bludiste4 - Floyduv algoritmus na zjisteni cesty ven z bludiste\\ [[naval/cest.c|cest.c]] - Cestujici - Heuristicke vyreseni problemu obchodniho cestujiciho\\ [[naval/cyn1.h|dyn1.h]], [[naval/dyn2.h|dyn2.h]]\\ [[naval/dynamic.h|dynamic.h]]\\ [[naval/fronta.c|fronta.c]]+[[naval/fronta.h|fronta.h]] - Fronta - program na vkladani cisel do fronty\\ [[naval/fronta1.c|fronta1.c]]+[[naval/fronta1.h|fronta1.h]] - Fronta - program na vkladani cisel do fronty\\ [[naval/fronta2.c|fronta2.c]]+[[naval/fronta2.h|fronta2.h]] - Fronta2 - program vytvari jednosmernou frontu cisel\\ [[naval/fronta3.c|fronta3.c]]+[[naval/fronta3.h|fronta3.h]] - Fronta3 - program vytvari obousmernou frontu cisel\\ [[naval/hloubka.c|hloubka.c]], [[naval/inout.h|inout.h]] - Hloubka - Prohledavani bludiste do hloubky'' [[naval/jakob.c|jakob.c]]+[[naval/jakob.h|jakob.h]] - Jakob program resi jakobuv problem, jak se rozpocitati, aby Jakob zbyl jako posledni\\ [[naval/jakoba.c|jakoba.c]], [[naval/pole1.c|pole1.c]] - Jakob program resi jakobuv problem, jak se rozpocitati, aby Jakob zbyl jako posledni\\ [[naval/sirka.c|sirka.c]], [[naval/slova1.c|slova1.c]]+[[naval/slova1.h|slova1.h]], [[naval/slova2.c|slova2.c]]\\ [[naval/slova2a.c|slova2a.c]], [[naval/sort.c|sort.c]]+[[naval/sort.h|sort.h]]\\ [[naval/zasobnik.c|zasobnik.c]]+[[naval/zasobnik.h|zasobnik.h]] - Zasobnik - program na vkladani cisel do zasobniku\\ ==Uvod do jazyka C== [[cvic3/cisla.c|cisla.c]], [[cvic3/znaky.c|znaky.c]], [[cvic4/polygon.c|polygon.c]], [[cvic5/primky.c|primky.c]], [[cvic6/prevod.c|prevod.c]], [[cvic7/jakyden.c|jakyden.c]], [[cvic8/vek.c|vek.c]], [[cvic9/sifra.c|sifra.c]], [[cvic10/vzdalenosti.c|vzdalenosti.c]], [[cvic11/osmerka.c|osmerka.c]] [[http://3537.cz/|Moznost si zaprogramovat zajimavou ulohu]] a ziskat tricko, nebo i praci