Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: gcc, g++, make a spol. - jak na to? [vyřešeno]  (Přečteno 7221 krát)

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
gcc, g++, make a spol. - jak na to? [vyřešeno]
« kdy: 11 Května 2009, 17:45:32 »
Zdravím,
skutečnost, že se mi nepodařilo zkompilovat extundelete mě vede k založení toho tématu. Těm, kterým by se snad mohlo zdát nemístné, se předem omlouvám.

Na linuxu jsem kompiloval zdrojáky v c naposledy někdy v roce 1995 a od té doby se a) jistě mnohé změnilo a b) si už stejně nepamatuji, jak jsem to dělal. Je pěkné, že je všude spousta návodů, jak napsat své první "Hele, *censored*", ale jakmile se návod dostane ke kompilaci, omezí se na strohé "v terminálu napíšeme make..." Nicméně nějakého souvislejšího výkladu o tom kdy použít g++, kdy gcc a kdy něco úplně jiného, co je na co lepší, jak to všechno naistalovat, kde případně hledat všemožné knihovní funkce a tak podobně, jsem se zatím nedopídil.

Rád bych zdůraznil, že mi nejde o nějaké kurzy C/C++ ale o to jaké jsou v ubuntu možnosti udělat z toho (nesporně úžasného) zdrojáku něco, co se dá spustit.

Děkuji a případným radikálním čtenářům se ještě jednou omlouvám :-)
« Poslední změna: 12 Května 2009, 11:11:09 od Premet »

MacHala

  • Závislák
  • ****
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • Zobrazit profil
    • ZlejT
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #1 kdy: 11 Května 2009, 18:21:42 »
pri rozsahu dnesnich aplikaci, clovek (kdyz se s tim nejak zvlast nezbyva) nema moc ve vlastnich rukou ani tu kompilaci - vsechno proste zalezi na tom jak developer na pise Makefile, a pak uz to je fakt zpravidla jen ./configure; doinstaluju co to hlasi, ze chybi; ./configure; znova doiinstaluju; ./configure (ted je uz vse ok); make ;make install

jinak se da rict ze g++ je na prgramy v C++ a gcc na C (i kdyz g++ stejne vola gcc)

knihovny je nejlepsi hledat v repozitarich... a kdyz se nedari zjistit, ktery balicek to obsahuje tak zagooglit

a uplne nejlepsi je nic nekompilovat a nechat to na vyvojarich :D
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #2 kdy: 11 Května 2009, 18:44:26 »
No, já bych si třeba i sem tam potřeboval něco napsat. Tedy: jezdit na kole umím, to se nazapomíná, jen u tohohle ubuntího kola nějak nemohu nají řídítka :-)
A navíc, občas je potřeba použít něco, co je k dispozici pouze ve zdroji (viz např. ten extundelete). Tož tak.

MacHala

  • Závislák
  • ****
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • Zobrazit profil
    • ZlejT
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #3 kdy: 11 Května 2009, 20:53:01 »
a jaky konkretne problem jsi s tim mel? co to hazelo za errory? ja to ted zkousel ve fedore a bylo to jen o napsani make ... a tady konkretne je i ten Makefile jednoduchy (konkretne ze tri zdrojaku zkompilovat tri object files a ty pak slinkovat)...
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

Yontalcar

  • Stálý člen
  • ***
  • Příspěvků: 833
  • Semper fidelis
    • Zobrazit profil
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #4 kdy: 11 Května 2009, 21:27:48 »
knihovny je nejlepsi hledat v repozitarich... a kdyz se nedari zjistit, ktery balicek to obsahuje tak zagooglit
na toto používám apt-file
NB: ASUS X53U - AMD Brazos E450; Debian GNU/Linux Sid amd64 (KDE 4.14)
Jen dvě věci jsou nekonečné - vesmír a lidská hloupost. Tím prvním si ovšem nejsem tak jist. - Albert Einstein

pousteVnik

  • Člen
  • **
  • Příspěvků: 182
    • Zobrazit profil
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #5 kdy: 11 Května 2009, 22:53:32 »
pokud chces neco tvorit tak si napis svuj mfile
http://man-wiki.net/index.php/1:create_makefile
edit :
jeste doplnim cesky:
http://www.linuxsoft.cz/article.php?id_article=722

MacHala

  • Závislák
  • ****
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • Zobrazit profil
    • ZlejT
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #6 kdy: 11 Května 2009, 23:10:35 »
knihovny je nejlepsi hledat v repozitarich... a kdyz se nedari zjistit, ktery balicek to obsahuje tak zagooglit
na toto používám apt-file
hm, skoda, ze jsem tohle neznal dokud jsem pouzival ubuntu... yum je v tomhle intuitivnejsi (ale taky pomalejsi...)
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #7 kdy: 11 Května 2009, 23:19:38 »
Na linuxu jsem kompiloval zdrojáky v c naposledy někdy v roce 1995 a od té doby se a) jistě mnohé změnilo a b) si už stejně nepamatuji, jak jsem to dělal. Je pěkné, že je všude spousta návodů, jak napsat své první "Hele, *censored*" ..
.. boze, ty jsi nejakej chytrej .. co kdybys treba ukazal na cem to skoncilo .. heh

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #8 kdy: 12 Května 2009, 00:24:39 »
a jaky konkretne problem jsi s tim mel? co to hazelo za errory? ja to ted zkousel ve fedore a bylo to jen o napsani make ... a tady konkretne je i ten Makefile jednoduchy (konkretne ze tri zdrojaku zkompilovat tri object files a ty pak slinkovat)...

No, nijak zvlášť jsem to neřešil - make mi vyjel spoustu chyb, tak jsem to (s ohledem na velmi pochybný výsledek použití onoho nástroje) nechal plavat a nijak moc to dál nezkoumal. Emilové (e-maily)  za šest dní (z toho tři dny volna) mi za to zase nestojí. Ale jde mi o to spíš obecně - je to, jako když sedíš v autě, víš, že umíš řídit, ale zrovna tuhle káru neumíš nastartovat :-)

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #9 kdy: 12 Května 2009, 00:30:27 »
.. boze, ty jsi nejakej chytrej .. co kdybys treba ukazal na cem to skoncilo .. heh

Zejtra to zkusím spustit znova a šoupnu ti to sem. Možná 50 řádků chyb, co já vím...

P.S.
Ta cenzůra se tu provádí automaticky nebo tu člověk nemůže bejt "neslušnej" ani sám na sebe? :-)))

MacHala

  • Závislák
  • ****
  • Příspěvků: 1104
  • Big Bro iz watching joo!
    • Zobrazit profil
    • ZlejT
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #10 kdy: 12 Května 2009, 00:32:08 »
No, nijak zvlášť jsem to neřešil - make mi vyjel spoustu chyb, tak jsem to (s ohledem na velmi pochybný výsledek použití onoho nástroje) nechal plavat a nijak moc to dál nezkoumal. Emilové (e-maily)  za šest dní (z toho tři dny volna) mi za to zase nestojí. Ale jde mi o to spíš obecně - je to, jako když sedíš v autě, víš, že umíš řídit, ale zrovna tuhle káru neumíš nastartovat :-)
ono je taky dulezity pokusit se najit zapalovani (aspon ty errory precist)...
Prislusnik ligy, za kreativni pouzivani interpunkcnich znamenek, carek, predevsim.
=======================================
Tweetuju jako http://twitter.com/zl8

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #11 kdy: 12 Května 2009, 00:43:52 »
Jasně.

První hláška byla, že nemám g++ :-). Tedy jenom jedna drobná chyba. Tak jsem ho nainstaloval a bylo z toho na jeden a půl obrazovky errorů. A vzhledem k tomu, že (zrovna v tomhle případě) je výsledek použití extundelete velmi nejistý, jsem to nechal plavat. V tuhle chvíli mi ani tak nejde o žádný konkrétní případ, jako o to jak (obecně, povšechně, srozumitelně, ...) na to.
Mimochodem, co je to zapalování?

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #12 kdy: 12 Května 2009, 08:25:48 »
ah. co treba zkusit `apt-get install build-essentials`

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #13 kdy: 12 Května 2009, 10:06:29 »
HA:
Kód: [Vybrat]
sudo apt-get install build-essentials
[sudo] password for ***:
Čtu seznamy balíků... Hotovo
Vytvářím strom závislostí       
Čtu stavové informace... Hotovo
E: Nemohu najít balík build-essentials

ufaak

  • Závislák
  • ****
  • Příspěvků: 2296
    • Zobrazit profil
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #14 kdy: 12 Května 2009, 10:12:19 »
znas klavesu "tab"? ona je desne mocna... kdyz napises zacatek, tak doplni konec :)

nesmis jen slepe kopirovat prikazy...

mas tam navic to s na konci
notebook MSI EX720X, Ubuntu 10.10

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #15 kdy: 12 Května 2009, 10:13:34 »
znas klavesu "tab"? ona je desne mocna... kdyz napises zacatek, tak doplni konec :)

nesmis jen slepe kopirovat prikazy...

mas tam navic to s na konci
.. hehe. lovim z pameti, pac nemam ubuntu, tak je jasne, ze ve jmenu baliku muzu udelat chybu

ufaak

  • Závislák
  • ****
  • Příspěvků: 2296
    • Zobrazit profil
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #16 kdy: 12 Května 2009, 10:14:34 »
znas klavesu "tab"? ona je desne mocna... kdyz napises zacatek, tak doplni konec :)

nesmis jen slepe kopirovat prikazy...

mas tam navic to s na konci
.. hehe. lovim z pameti, pac nemam ubuntu, tak je jasne, ze ve jmenu baliku muzu udelat chybu

to taky nebylo mirene na tebe ;)
notebook MSI EX720X, Ubuntu 10.10

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #17 kdy: 12 Května 2009, 10:17:27 »
.. boze, ty jsi nejakej chytrej .. co kdybys treba ukazal na cem to skoncilo .. heh

Kód: [Vybrat]
make
g++ -I. -I. -I.. -g -W -Wall -Wimplicit -Woverloaded-virtual -Wundef -Wpointer-arith -Wwrite-strings -Winline -DDEBUG -DUSE_MMAP=1 -c -o extundelete.o `test -f 'extundelete.cc' || echo './'`extundelete.cc                                                                                                                                                            
extundelete.cc:77:27: error: ext2fs/ext2fs.h: No such file or directory                                                                                                            
In file included from extundelete.cc:78:                                                                                                                                            
kernel-jbd.h:106: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:107: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:108: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:117: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:118: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:149: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:150: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:151: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:155: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:156: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:160: error: ‘__s32’ does not name a type                                                                                                                              
kernel-jbd.h:164: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:165: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:166: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:168: error: ‘__u8’ does not name a type                                                                                                                                
kernel-jbd.h:171: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:173: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:176: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:177: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:180: error: ‘__u32’ does not name a type                                                                                                                              
kernel-jbd.h:183: error: ‘__u8’ does not name a type                                                                                                                                
kernel-jbd.h:797: error: expected initializer before ‘EXT2FS_ATTR’                                                                                                                  
kernel-jbd.h:798: error: expected initializer before ‘EXT2FS_ATTR’                                                                                                                  
In file included from extundelete.cc:79:                                                                                                                                            
undel.h:52: error: ISO C++ forbids declaration of ‘ext2_ino_t’ with no type                                                                                                        
undel.h:52: error: expected ‘;’ before ‘*’ token                                                                                                                                    
undel.h:72: error: variable or field ‘run_program’ declared void
undel.h:72: error: ‘ext2_filsys’ was not declared in this scope
undel.h:73: error: variable or field ‘load_super_block’ declared void
undel.h:73: error: ‘ext2_filsys’ was not declared in this scope
undel.h:74: error: variable or field ‘init_journal’ declared void
undel.h:74: error: ‘ext2_filsys’ was not declared in this scope
undel.h:74: error: expected primary-expression before ‘*’ token
undel.h:74: error: ‘jsb’ was not declared in this scope
undel.h:75: error: variable or field ‘restore_file’ declared void
undel.h:75: error: ‘ext2_filsys’ was not declared in this scope
undel.h:75: error: expected primary-expression before ‘const’
undel.h:76: error: variable or field ‘restore_inode’ declared void
undel.h:76: error: ‘ext2_filsys’ was not declared in this scope
undel.h:76: error: expected primary-expression before ‘int’
undel.h:76: error: expected primary-expression before ‘const’
undel.h:78: error: variable or field ‘recover_inode’ declared void
undel.h:78: error: ‘ext2_filsys’ was not declared in this scope
undel.h:78: error: expected primary-expression before ‘int’
undel.h:78: error: expected primary-expression before ‘struct’
undel.h:79: error: ‘ext2_filsys’ was not declared in this scope
undel.h:79: error: ‘ext2_ino_t’ was not declared in this scope
undel.h:79: error: template argument 1 is invalid
undel.h:79: error: template argument 2 is invalid
undel.h:79: error: ‘inolist’ was not declared in this scope
undel.h:79: error: ‘ext2_ino_t’ was not declared in this scope
undel.h:79: error: expected primary-expression before ‘dirname’
undel.h:79: error: initializer expression list treated as compound expression
undel.h:82: error: expected ‘,’ or ‘...’ before ‘*’ token
undel.h:82: error: ISO C++ forbids declaration of ‘ext2_super_block’ with no type
undel.h:85: error: expected ‘,’ or ‘...’ before ‘&’ token
undel.h:85: error: ISO C++ forbids declaration of ‘ext2_group_desc’ with no type
In file included from extundelete.cc:80:
undel-priv.h:16: error: expected constructor, destructor, or type conversion before ‘*’ token
undel-priv.h:20: error: ‘ext2_super_block’ does not name a type
undel-priv.h:29: error: expected constructor, destructor, or type conversion before ‘*’ token
undel-priv.h:50: error: ‘__s64’ does not name a type
undel-priv.h:51: error: ‘__s64’ does not name a type
In file included from extundelete.cc:81:
block.h:9: error: ‘ext2_ino_t’ does not name a type
block.h:12: error: ‘ext2_ino_t’ has not been declared
block.h:20: error: ‘errcode_t’ does not name a type
block.h:23: error: ‘errcode_t’ does not name a type
block.h:35: error: ‘ext2_filsys’ was not declared in this scope
block.h:36: error: ‘blk_t’ was not declared in this scope
block.h:36: error: ‘blocknr’ was not declared in this scope
block.h:37: error: ‘e2_blkcnt_t’ was not declared in this scope
block.h:38: error: ‘blk_t’ was not declared in this scope
block.h:39: error: expected primary-expression before ‘int’
block.h:40: error: expected primary-expression before ‘void’
block.h:40: error: initializer expression list treated as compound expression
extundelete.cc:119: error: ‘is_filename_char’ declared as an ‘inline’ variable
extundelete.cc:119: error: ‘__s8’ was not declared in this scope
extundelete.cc:120: error: expected ‘,’ or ‘;’ before ‘{’ token
make: *** [all] Error 1

vidím, že mi chybí ext2fs.h  -> kde ho mám vzít? -> a i kdyby, výsledek obnovy je dat je nejistý -> kašlu na to -> zakládám vlákno plné blbých otázek :-)

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #18 kdy: 12 Května 2009, 10:18:37 »
znas klavesu "tab"? ona je desne mocna... kdyz napises zacatek, tak doplni konec :)

nesmis jen slepe kopirovat prikazy...

mas tam navic to s na konci

I ntz se někdy sekne...

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #19 kdy: 12 Května 2009, 10:39:12 »
Citace: makefile
error: ext2fs/ext2fs.h: No such file or directory

hehe. minimalne ti chybi balik co obsahuje header pro ext2fs, u me ::

Citace
# rpm -qf `find /usr/include/ | grep ext2fs\.h` --queryformat %{name}\\n
libext2fs-devel
« Poslední změna: 12 Května 2009, 10:41:36 od nettezzaumana »

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #20 kdy: 12 Května 2009, 10:43:22 »
ad.x) a copak to build-essential neobsahuje balik co ma v sobe ext2fs.h ??

premet

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #21 kdy: 12 Května 2009, 10:44:32 »
Stačí trochu googlovat a zjistíš, že ten balík je nejspíš
Kód: [Vybrat]
e2fslibs-dev

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #22 kdy: 12 Května 2009, 10:45:50 »
ad.x) a copak to build-essential neobsahuje balik co ma v sobe ext2fs.h ??

Zdá se, že ne...

nettezzaumana

  • Host
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #23 kdy: 12 Května 2009, 10:47:53 »
hmm. nicmene verim, ze se nakonec se svyma zkusenostma jiste dostanes i za tuto zdanlive neresitelnou otazku a jiste nam ukazes pripadne dalsi errory ..

http://sysinf0.klabs.be/usr/include/ext2fs/ext2fs.h?dist=;arch=

mka

  • Závislák
  • ****
  • Příspěvků: 1907
  • Chybovat je moje.
    • Zobrazit profil
    • Příložany Cé Zet
Re: gcc, g++, make a spol. - jak na to?
« Odpověď #24 kdy: 12 Května 2009, 10:53:42 »
Stačí trochu googlovat a zjistíš, že ten balík je nejspíš
Kód: [Vybrat]
e2fslibs-dev

A jsme u toho - základní otázka tohoto tématu zní: to to fakt nejde jinak než kvůli každý pí... googlovat a shánět? To nikde není nějaká stránka, kde by všechny tyhle informace byly hezky po kupě? např.:
  • pro obsluhu fs potřebujte tyto knihovny
  • pro obsluhu usb tyto knihovny
  • pro obsluhu tohohle tohle
  • pro obsluhu támhlenctoho tůdlencto

 


Provoz zaštiťuje spolek OpenAlt.