Portál AbcLinuxu, 12. května 2025 15:25

Dotaz: Program make

12.2.2014 01:26 Kocovinka
Program make
Přečteno: 858×
Odpovědět | Admin
Dobrý den, dostal jsem se k souboru dispackage.tar.gz, který obsahuje algoritmy, které potřebuji použít v diplomové práci. V prvním kroku jsem si myslel, že jde o Cčko, které jsem po chvilce googlování vyloučil a začal jsem hledat co je to "make" (podle README souborů, které obsahují návod), dokonce jsem se dostal i ke stažení programu MinGW, který ani neumím otevřít -> nemám tušení, jak se k požadovaným metodám dostanu. Pokud by někdo měl zájem, rád mu soubor pošlu a pokud se mu to podaří zprovoznit a vysvětlit, tak mu za to velmi rád zaplatím.

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 12.2.2014 01:48 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Program make
Odpovědět | | Sbalit | Link | Blokovat | Admin
make je nástroj na spouštění překladačů ve správném pořadí. V makefile definuješ závislosti a make zajistí, že se to pořeší. Pokud pak něco změníš, tak pořeší jen to, co se změnilo a to, co závisí na změněném. Viz http://www.gnu.org/software/make/manual/html_node/Introduction.html

make sám o sobě ale nic nedělá, jen řídí.
Hello world ! Segmentation fault (core dumped)
12.2.2014 11:40
Rozbalit Rozbalit vše Re: Program make
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli jsi to jeste nevyresil, tak mi to muzes poslat na novakm133[zavinac]gmail[tecka]com
12.2.2014 14:13 potato
Rozbalit Rozbalit vše Re: Program make
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zprovoznění MinGW spíš pro lidi, kteří dobře vědí, proč a nač chtějí pod MS Windows relativně použitelné unixové prostředí. Nainstaluj si raději Linux do virtuálního stroje.

Pokud Makefile sám nevytváříš, je použití triviální: v shellu přejdeš do adresáře a spusíš
make
Ono to vesměs udělá, co má.

A ke studiu algoritmů nic z toho nepotřebuješ, ty jsou stejně ve zdrojových kódech, ne v Makefile, který jen řeší kompilaci.
12.2.2014 16:41 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: Program make
Odpovědět | | Sbalit | Link | Blokovat | Admin
.tar.gz je něco jako zip, takže rozbalit a přečíst si ty metody ve zdrojáku, jestli je to binárka, tak existuje pravděpodobnost menší než promile, že se to podaří nějak rozložit (nevím termín opačný kompilaci), ale podařilo se mi to jen s hello world...
12.2.2014 16:46 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: Program make
mimochodem ty pokusy o sestavení, v readme je právě napsáno, jak se to má kompilovat, čili pokud jde jen o ty metody, kompilace je ztráta času, leda že by pak stačilo přepsat autora a odevzdat jako svou diplomku...
13.2.2014 01:51 Kocovinka
Rozbalit Rozbalit vše Re: Program make
V prvni rade bych rad podekoval mistni komunite za rychlou reakci a pristup vubec, cekal jsem uplne neco jineho. Asi jsem se spatne vyjadril, ja postup pro vypocet mam, ale jde mi hlavne o implemantaci metod na data. Sam bych si to na vzorku dokazal spocitat, ale pro velky datovy soubor ne. Ten soubor obsahuje jak metody, tak data. Jestli jsem to dobre pochopil, tak vypocita jednotlive metody k temto datum (ktere neni problem zmenit).
13.2.2014 08:15 MadCatX
Rozbalit Rozbalit vše Re: Program make
Rozumím dobře tomu, že jste dostal nějaký program (sadu programů), který zpracuje nějaká experimentální data, která pak nějak dál použijete? „Metodou” rozumíte nějaký vyhodnocovací postup? Nestačilo by, kdyby vám ten software někdo zkompiloval (asi pro Windows)?
13.2.2014 10:59 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Chapete to presne. Nejvetsi problem bude prave ve mne.
13.2.2014 13:55 MadCatX
Rozbalit Rozbalit vše Re: Program make
A můžete ten archiv se zdrojáky někam nahrát? Dost možná by se našel někdo s potřebným SW, co by vám to zkompiloval...
13.2.2014 14:27 Kocovinka
Rozbalit Rozbalit vše Re: Program make

Archiv je nahraný zde: http://leteckaposta.cz/284625372 Už mi s tím pomáhal pan Novák, vypadá to, že problém bude ve stáří těch kódů, které jsou přibližně z roku 2000.

13.2.2014 19:15 MadCatX
Rozbalit Rozbalit vše Re: Program make
Problém není ve stáří kódu; i dvacet a více let staré zdrojáky lze přeložit a provozovat bez problému, pokud jsou napsané dobře. Tento kód je ale fatální bastl. Přeložit se mi to podařilo asi až po hodině. Máte nějaká data, na kterých lze funkčnost programu ověřit?
13.2.2014 19:46 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Nejlépe na datech, které jsou v tom archivu a to konkrétně Iris, u těch vím, jak by to mělo vyjít. Jestli by se Vám to povedlo, tak by to bylo opravdu super :-).

14.2.2014 11:42 MadCatX
Rozbalit Rozbalit vše Re: Program make
Máte k dispozici nějaký stroj s POSIX kompatibilním operačním systémem (Linux, Mac OS X, *BSD, ...)? Zfunkčnit se mi to téměř povedlo, ale portovat to na Windows by byla další extra práce...
14.2.2014 11:57 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Měl bych přístup k ubuntu na netbooku, jestli by to stačilo.
14.2.2014 14:05 MadCatX
Rozbalit Rozbalit vše Re: Program make
Bez problémů. Stačí mít nainstalovaný CMake a GCC. Nástroj se zkompiluje spuštěním
cmake .
make
v adresáři DISPACKAGE_2/CODE.

Vzhledem k celkové podivnosti programu APPL, který má podle všeho fungovat jako nějaké vstupní menu pro spouštění jednotlivých výpočetních nástrojů jsem je musel nahradit. Ovládá se takto:
Nejprve ve vstupním menu vyberte adresář s daty (klávesa 'c'). Zadáním jména adresáře do něj vstoupíte, ".." přejde o úroveň výš, "." vybere aktuálně zobrazený adresář. Číslem vyberete požadovanou metodu a zadáte její parametry. Má-li být parametrem název souboru, není třeba uvádět plnou cestu, ale jen název. Výstup z metody se podle všeho uloží do adresáře se vstupními daty.

Ovládací menu by určitě potřebovalo značně vylepšit, do čehož se mi příliš nechce zejména proto, že nemám tušení, zda ty upravené výpočetní nástroje vůbec počítají správně.

Download: http://prifuk.cz/non_drupal/DISPACKAGE_2.tar.xz
14.2.2014 16:00 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Jestli jsem to dobře pochopil tak by se po zkompilování měl otevřít nějaký program? Mě se nic neotevře a vyhodí mi to následující chyby: cc1plus: error: unrecognized command line option ‘-std=c++11’ make[2]: *** [menu/CMakeFiles/run.dir/menu.cpp.o] Error 1 make[1]: *** [menu/CMakeFiles/run.dir/all] Error 2 make: *** [all] Error 2
14.2.2014 16:05 MadCatX
Rozbalit Rozbalit vše Re: Program make
A v jaké verzi kompilátoru předkládáte? (gcc --version). Jestli je to verze 4.6 a starší, je nutné v "menu/CMakeLists.txt" nahradit "-std=c++11" za "-std=c++0x". Jinak po zkompilování se samovolně nic nespustí, menu je nutné spustit ručně příkazem "./run".
14.2.2014 16:17 Kocovinka
Rozbalit Rozbalit vše Re: Program make

Gcc jsem nainstaloval pomocí tohoto odkazu: http://xubuntugeek.blogspot.cz/2012/06/fix-cmake-cmakecxxcompiler-notfound.html Jaká je to verze, to nevím, každopádně mi to i po přepsání hlásí stejné chyby.

14.2.2014 16:26 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Tedy už to hlásí jenom

make[2]: *** [menu/CMakeFiles/run.dir/menu.cpp.o] Error 1

make[1]: *** [menu/CMakeFiles/run.dir/all] Error 2

make: *** [all] Error 2
14.2.2014 16:29 MadCatX
Rozbalit Rozbalit vše Re: Program make
Verzi zjistíte z "gcc --version". Stejnou chybu to po přepsání hlásit nemůže:). Ověřte, že jste ten CMakeLists.txt opravně upravil a spustťe:
make clean
cmake .
make
14.2.2014 16:35 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Verze je 4.6.3.

Na konci už to píše tohle:

make[2]: *** [menu/CMakeFiles/run.dir/menu.cpp.o] Error 1

make[1]: *** [menu/CMakeFiles/run.dir/all] Error 2

make: *** [all] Error 2

14.2.2014 17:18 MadCatX
Rozbalit Rozbalit vše Re: Program make
GCC 4.6 nemám kde zkusit ale s "-std=c++0x" by mělo fungovat, GCC 4.7 je OK určitě. Zkuste v adresáři "menu" smazat "cmake_install.cmake", "CMakeCache.txt", "CMakeFiles" a "Makefile" a spusťte překlad znovu. Kdyby to i tak selhalo, pošlete větší kus výstupu; ze závěrečné hlášky o tom, že někde při překladu došlo k chybě se nedá zjistit, kde je problém.
14.2.2014 17:48 Kocovinka
Rozbalit Rozbalit vše Re: Program make
CMakeCachae.txt jsem tam ani neměl, ale po smazání ostatních to po kompilaci chybu už nehází. Teď to spustím tak, že v adrasáři /menu spustím ./run?
14.2.2014 18:00 MadCatX
Rozbalit Rozbalit vše Re: Program make
"run" by se měl vytvořit v adresáři "CODE", ne v "CODE/menu". V adresáři "menu" se vytvoří jen tehdy, pokud spustíte kompilaci z adresáře "menu". Pokud kompilaci spustíte z adresáře "CODE", jak je zamýšleno, vytvoří se tam. Je důležité, aby byl "run" v adresáři CODE a pouštěl se z něj, jinak se nepodaří spustit ty výpočetní programy.
14.2.2014 18:05 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Takže v DISPACKAGE_2/CODE/ zadám příkaz "run" a mělo by to běžet?
14.2.2014 18:18 MadCatX
Rozbalit Rozbalit vše Re: Program make
Musíte použít "./run" a program se spustí - jenom "run" by hledal příslušný program v adresářích uvedených v $PATH, ale to je bonusová informace:)
14.2.2014 18:21 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Po "./run" píše

bash: ./run: adresář nebo soubor neexistuje.

Při kompilaci to píše spousty warningů, ale žádné chyby.
14.2.2014 18:29 MadCatX
Rozbalit Rozbalit vše Re: Program make
A je v CODE soubor "run"? Nepište to z uvozovkami, ty používám jen v příspěvcích, abych příkazy viditelně odlišil...
14.2.2014 18:32 Kocovinka
Rozbalit Rozbalit vše Re: Program make
V linuxu natož v terminálu něco dělám poprvé v životě, ale uvozovky tam nepíšu :-). V CODE není soubor run.
14.2.2014 19:01 MadCatX
Rozbalit Rozbalit vše Re: Program make
A je v CODE/menu? CMake by sice měl zajistit že se "run" vytvoří v CODE, ale i jestli se kdoví proč vytvořil v CODE/menu, můžete ho do CODE klidně zkopírovat.
14.2.2014 19:16 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Vymazal jsem složku a zkusil to znova.

Můj postup:

přepsal jsem ++ na 0x

V terminálu: cd DISPACKAGE_2/CODE

cmake .

make

Výpis:

http://leteckaposta.cz/691405896

Znovu to hlásí ty chyby.
Řešení 1× (Kocovinka (tazatel))
14.2.2014 20:11 MadCatX
Rozbalit Rozbalit vše Re: Program make
Aha, staré GCC má zjevně ještě jeden problém. Fix: http://prifuk.cz/non_drupal/DISPACKAGE_3.tar.xz
14.2.2014 20:24 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Super, už to funguje, jen nerozumím výběru dat, vyskočí tam několik možností, které neodkazují na data, ale jednotlivé metody.
14.2.2014 20:47 MadCatX
Rozbalit Rozbalit vše Re: Program make
Takhle to má fungovat, možná si způsob použití nechte vysvětlit od toho, kdo vám ten nástroj předal. Prostě vyberete metodu a pak soubory s daty, které se jí mají zpracovat.
14.2.2014 20:52 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Princip chápu, v možnosti "C" vyberu data a pak metodu, která by je měla zpracovat. Jenže když si do CODE přehodím například iris.data (která jsou původně ve složce DATA), tak mi to při pokusu je vybrat napíše, že nelze změnit adresář.
14.2.2014 21:03 MadCatX
Rozbalit Rozbalit vše Re: Program make
Do CODE to přehazovat nemusíte. Možnost "c" umožní změnit pracovní adresář, takže při zadávání parametrů metody - těch souborů, které se mají zpracovat - nemusíte zadávat celou cestu k souboru, ale jen jméno. UNIXové OS jsou z velké věštšiny case sensitive, takže je třeba při zadávání jmen adresářů a souborů dbát na velikost písmen.
14.2.2014 21:29 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Takže mě se změnou adresáře změní místo, kam se uloží výstupní tabulky. Každopádně, minimálně co se týče metody equal-width, tak to pracuje skvěle! Jestli to tak bude i v ostatních metodách (nepochybuji o tom)a zvládne to velké datové soubory (o čemž taky nepochybuji), tak mi to ulehčilo strašně práce. Moc Vám děkuji, je mi jasné, že Vás to stálo spoustu času a úsilí, rád Vám pošlu i nějakou rozumnou sumu na účet, pokud mi dáte číslo účtu.
21.2.2014 18:51 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Tak ještě jedna věc, téměř všechny metody fungují, kromě chi_2 a chi_merge, vypadá to, že vůbec neberou v potaz zadanou hladinu významnosti a (u chi_2) velikost nekonzistence.
24.2.2014 12:46 MadCatX
Rozbalit Rozbalit vše Re: Program make
Jej, trochu jsem to nedomyslel:) Zkuste toto: http://prifuk.cz/non_drupal/DISPACKAGE_4.tar.xz. Jinak v číselných parametrech je nutné použít jako desetinný oddělovač tečku místo čárky.
26.2.2014 00:00 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Vyzkoušeno, bohužel stále stejný problém. Chi_merge se nevypočítá vůbec, Chi_2 (ta by bohatě stačila, jedná se o "vylepšenou" metodu chi_merge) vypočítá vždy stejné hodnoty nezávisle na hodnotě hladiny významnosti i nekonzistence.
26.2.2014 08:59 MadCatX
Rozbalit Rozbalit vše Re: Program make
Parametry to už dostane správné a minimálně v chi_merge se hodnota hladiny významnosti použije a nějaký vliv na běh programu má. Bez bližší znalosti algoritmu nebo aspoň vzorového výstupu vypočteného pro různé hladiny významnosti se toho dál nedá moc dělat...
26.2.2014 09:15 MadCatX
Rozbalit Rozbalit vše Re: Program make
Jen tak mimochodem, v té statistice má figurovat nějaký jiný "zlatý poměr" než ten všeobecně známý? Ten program to počítá jako
gr = (3 + sqrt(5))/2
Zatímco zlatý poměr, který znám já má hodnotu
gr = (1 + sqrt(5))/2
Fungovaly ty jednotky pro výpočet chi vůbec někdy někomu?:)
14.2.2014 14:02 Kocovinka
Rozbalit Rozbalit vše Re: Program make
Nebo ještě jinak, byl byste ochotný to portovat na Windows? Případně kolik byste si za to představoval? Jsem teď s diplomkou na mrtvém bodě, opravdu bych to potřeboval.
14.2.2014 23:18 karl82 | skóre: 6
Rozbalit Rozbalit vše Re: Program make
Za 80k Kč to naportuju

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.