Kirjoittaja Aihe: Ongelma käännettäessä anjutalla  (Luettu 6208 kertaa)

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Ongelma käännettäessä anjutalla
« : 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;
}
Antti Lehtinen

Jantunen

  • Käyttäjä
  • Viestejä: 254
  • Hö.
    • Profiili
    • Strobotti.com: Valokuvausta ja kameraharrastusta
Vs: Ongelma käännettäessä anjutalla
« Vastaus #1 : 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)
Lenovo Thinkpad T420 Intel i5 16Gt/SSD512GB+HDD2TB, Ubuntu 16.04 Xenial Xerus 64bit; Kuvia ja lätinää valokuvauksesta: https://www.strobotti.com/

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #2 : 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
Antti Lehtinen

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #3 : 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
Antti Lehtinen

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #4 : 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!
« Viimeksi muokattu: 04.05.07 - klo:15.28 kirjoittanut AnttiLehtinen »
Antti Lehtinen

tn

  • Käyttäjä
  • Viestejä: 472
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #5 : 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ä.

Vapaan koodin kananmuna

  • Käyttäjä
  • Viestejä: 1536
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #6 : 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ä.
En Vastaa Vaikeisiin Kysymyksiin.

tn

  • Käyttäjä
  • Viestejä: 472
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #7 : 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ä.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #8 : 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.
Janne

tn

  • Käyttäjä
  • Viestejä: 472
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #9 : 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.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #10 : 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' ;)
Janne

AnttiLehtinen

  • Käyttäjä
  • Viestejä: 161
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #11 : 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.
Antti Lehtinen

tn

  • Käyttäjä
  • Viestejä: 472
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #12 : 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.

janne

  • Käyttäjä
  • Viestejä: 5150
    • Profiili
Vs: Ongelma käännettäessä anjutalla
« Vastaus #13 : 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.
Janne