Ubuntu Suomen keskustelualueet

Ubuntun käyttö => Ohjelmointi, palvelimet ja muu edistyneempi käyttö => Aiheen aloitti: AnttiLehtinen - 04.05.07 - klo:07.01

Otsikko: Ongelma käännettäessä anjutalla
Kirjoitti: AnttiLehtinen - 04.05.07 - klo:07.01
Ohjelma antaa compileta (en muista suomeksi) mutta kääntäminen (build)
antaa seuraavan virheen:
**(anjuta:24110):WARNING**: Cannot execute command: "make"

Osaisko joku minua fiksumpi kertoa missä vika.
Kokeilusorsa on tällainen:
Koodia: [Valitse]
#include <stdio.h>

int main(void) {
    /* tulostetaan tekstiä näytölle */
    printf("C-ohjelmointi on kivaa!\n");

    return 0;
}
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: Jantunen - 04.05.07 - klo:08.50
Anjutasta ei mitään kokemuksia, mutta tuo virheilmo haiskahtaa siltä, ettei nimenomaan tuota makea ole asennettu.

Maken saat asennettua paketista build-essential eli:

Koodia: [Valitse]
sudo apt-get install build-essential
(http://packages.ubuntu.com/feisty/devel/build-essential (http://packages.ubuntu.com/feisty/devel/build-essential))
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: AnttiLehtinen - 04.05.07 - klo:11.22
Ette ikinä arvaa... :)
Mutta tuo sorsa tulostaa seuraavaa:

Koodia: [Valitse]
EXECUTING:
/home/antti/Projects/kokeilua/src/kokeilua kokeiluja
----------------------------------------------
Hello world

----------------------------------------------
Program exited successfully with errcode (0)
Press the Enter key to close this terminal ...

Miten se on mahdollista? ? ?  :o
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: AnttiLehtinen - 04.05.07 - klo:12.28
Sama tuloste tulee myös koodilla:
Koodia: [Valitse]
/*to demonstrate variables */


#include <iostream>     //includes the header file iostream
using namespace std;    //tells the compiler to use the std library

int main()
{
int number;
float decimal;
char character;
string word;

number = 1;
decimal =1.1;
character = 'f';
word = "hello";

cout<<number<<" "<<decimal<<" "<<character<<" "<<word<<endl;

cin.get();
return 0;
}

Eli siis pelkkä hello world
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: AnttiLehtinen - 04.05.07 - klo:13.41
siis olen tekemässä komentohekoitteessa (pääte) toimivaa ohjelmaa...

EDIT:
huomasin juuri että BUILD -komento ei olekaan tehnyt suoritettavaa ohjelmaa *.exe.
Missäköhän vika?
Halu ainoastaan tehdä tekstipohjaisia ohjelmia jotka toimisivat päätteessä...
Please help!
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: tn - 04.05.07 - klo:19.48
huomasin juuri että BUILD -komento ei olekaan tehnyt suoritettavaa ohjelmaa *.exe.
Missäköhän vika?
No ainakaan suoritettavat ohjelmat eivät ole linuxissa exe-päätteisiä vaan päätteettömiä.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: Vapaan koodin kananmuna - 04.05.07 - klo:20.20
huomasin juuri että BUILD -komento ei olekaan tehnyt suoritettavaa ohjelmaa *.exe.
Missäköhän vika?
No ainakaan suoritettavat ohjelmat eivät ole linuxissa exe-päätteisiä vaan päätteettömiä.
Poikkeus on Mono, jossa suoritettavat ohjelmat on .NETin speksin mukaisesti .exe päätteisiä.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: tn - 04.05.07 - klo:20.42
Poikkeus on Mono, jossa suoritettavat ohjelmat on .NETin speksin mukaisesti .exe päätteisiä.
No joo. Ja ovathan python-ohjelmat ja sh-skriptikin "suoritettavia" (ja usein päätteellisiä).

Tässä taisi olla kuitenkin kyse natiiveista C-ohjelmista. :)

Ja Anjutasta piti sanoa vielä se juttu, että itse kypsyin siihen parin kokeilukerran jälkeen. Uskomattoman määrän (~turhia) tiedostoja se ainakin luo uutta projektia tehdessä.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: janne - 04.05.07 - klo:21.15

ensin viilataan hieman pilkkua...

Sama tuloste tulee myös koodilla:
Koodia: [Valitse]
using namespace std;    //tells the compiler to use the std library

tuo kommentti ei tarkalleen ottaen pidä paikaansa.

ja sitten ihmetellään...
Ja Anjutasta piti sanoa vielä se juttu, että itse kypsyin siihen parin kokeilukerran jälkeen. Uskomattoman määrän (~turhia) tiedostoja se ainakin luo uutta projektia tehdessä.

tuo nyt riippuu aika paljon siitä mitä tarkoittaa turhilla. itse ainakin pidän siitä, että se luo automaattisesti autotoolsin käyttöön tarvitut tiedostot samoin kuin kaiken oletussälän (changelogit, lisenssit ym.) ja tietty projektitiedosto on iden käyttöön pakollinen.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: tn - 04.05.07 - klo:21.45
Noh, jatketaan nyt aiheen vierestä...

ja sitten ihmetellään...
Ja Anjutasta piti sanoa vielä se juttu, että itse kypsyin siihen parin kokeilukerran jälkeen. Uskomattoman määrän (~turhia) tiedostoja se ainakin luo uutta projektia tehdessä.

tuo nyt riippuu aika paljon siitä mitä tarkoittaa turhilla. itse ainakin pidän siitä, että se luo automaattisesti autotoolsin käyttöön tarvitut tiedostot samoin kuin kaiken oletussälän (changelogit, lisenssit ym.) ja tietty projektitiedosto on iden käyttöön pakollinen.
No tarkoitan turhalla juuri mm. noita mainittuja tiedostoja. Kaipaisin mahdollisesti vain yhtä projektitiedostoa lähdekooditiedostojen lisäksi. Noita muita voisi kyllä toki sitten olla helposti lisättävissä sinne. Tässä kuitenkin pari syytä:
a) En ole oppinut / jaksanut opetella käyttämään noita autotoolseja. Itse asiassa minulle on vähän epäselvää, mitä niillä tarkalleen ottaen tehdään.
b) Kaikein maailman changelogit, lisenssit ja readmet ovat omiin kohtuullisen pienen kokoluokan "projekteihin" turhia. Etenkin kun nuo tuppaavat olevan lähes kaikki pelkästään omaan käyttöön.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: janne - 05.05.07 - klo:01.59
Kaipaisin mahdollisesti vain yhtä projektitiedostoa lähdekooditiedostojen lisäksi.

et edes makefileä?

Tässä kuitenkin pari syytä:
a) En ole oppinut / jaksanut opetella käyttämään noita autotoolseja. Itse asiassa minulle on vähän epäselvää, mitä niillä tarkalleen ottaen tehdään.
b) Kaikein maailman changelogit, lisenssit ja readmet ovat omiin kohtuullisen pienen kokoluokan "projekteihin" turhia. Etenkin kun nuo tuppaavat olevan lähes kaikki pelkästään omaan käyttöön.

no, jos tosiaan ajat niitä vain omalla koneella, niin ei kai niillä niin paljoa väliä olekaan. toisaalta ei se tarkoita, ettei asioita voisi silti tehdä 'oikein' ;)
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: AnttiLehtinen - 05.05.07 - klo:09.22
Mutta miten siis saan käynnistettyä ohjelman joka on käännetty
ddd.cc -sorsasta?
Kylläkai joku suoritettava ohjelma muodostua pitäisi. Mutta
etsi toiminnolla löytyy vain nuo:
-ddd.cc
-ddd.o

joten missä vika?

Kuten sanottua en tarvitse muuta nyt alkuun kuin päätteessä
toimivan ohjelman. Millä tee sellaisen?
Voisinko saada seikkaperäiset ohjeet?
Esim. niin että kirjoita tämä sorsa, paina tuota nappia, paina sen
jälkeen tuota ja tee tätä. Tyyliin noin, kiitos.

Kiitos vastauksistanne jo etukäteen.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: tn - 05.05.07 - klo:12.08
Kaipaisin mahdollisesti vain yhtä projektitiedostoa lähdekooditiedostojen lisäksi.

et edes makefileä?


Kuten sanottua en tarvitse muuta nyt alkuun kuin päätteessä
toimivan ohjelman. Millä tee sellaisen?
Voisinko saada seikkaperäiset ohjeet?

No tässä ohjeet yksinkertaisen ohjelman tekemiseen ja kääntämiseen ilman IDEjä:

1. Kirjoita ohjelma haluamallasi editorilla (esim. Gedit) ja tallenna se haluamaasi hakemistoon (esim. ~/ohjelmointi/testi.c tai ...testi.cpp jos käytät c++:aa)

2. Avaa pääte ja siirry kyiseiseen hakemistoon (esim. cd ~/ohjelmointi)

3. Käännä ohjelma komentamalla:
Koodia: [Valitse]
gcc testi.c -o testitai jos käytät c++:aa:
Koodia: [Valitse]
g++ testi.cpp -o testi-o -parametrilla siis annetaan käännetyn ohjelman nimi.

4. Jos tuli virheilmoituksia, korjaa ohjelmakoodi, tallenna se ja jatka  kohdasta 3.

5. Ohjelma siis kääntyi. Aja ohjelma komennolla
Koodia: [Valitse]
./testi
6. Jos lopputulos ei ollut toivottu korjaa ohjelmakoodi, tallenna se ja jatka  kohdasta 3.

7. Hienoa, sait ohjelman valmiiksi.
Otsikko: Vs: Ongelma käännettäessä anjutalla
Kirjoitti: janne - 05.05.07 - klo:12.22
Mutta miten siis saan käynnistettyä ohjelman joka on käännetty
ddd.cc -sorsasta?
Kylläkai joku suoritettava ohjelma muodostua pitäisi. Mutta
etsi toiminnolla löytyy vain nuo:
-ddd.cc
-ddd.o

joten missä vika?

vaihtoehtoja on kaksi...

joko, valitsit vahingossa menusta compile, etkä build, joka siis ainoastaan kääntää kyseisen modulin, mutta ei linkkaa siitä suoritettavaa tiedostoa, tai sitten linkkausvaiheessa ohjelmalle annettiin joku muu nimi kuin mikä sillä on oletuksena. anjuta antaa suoritettavalle ohjelmalle sen nimin joka softalle on projektin asetuksissa annettu (käytännössä -o -parametrilla).


Kuten sanottua en tarvitse muuta nyt alkuun kuin päätteessä
toimivan ohjelman. Millä tee sellaisen?

sinulla luultavasti on jo sellainen.

Voisinko saada seikkaperäiset ohjeet?
Esim. niin että kirjoita tämä sorsa, paina tuota nappia, paina sen
jälkeen tuota ja tee tätä. Tyyliin noin, kiitos.

olet varmaan tehnyt jo homman idessä, mutta olen kyllä sitä mieltä, että tuo komentoriviltä kääntäminenkin on varsin hyvä taito osata ja tn ohjeistikin sen yhdellä tiedostolla tehtynä, ilman ulkopuolisten kirjastojen linkkaamista.