C++ -kysymykset
-
- Active Member
- Posts: 111
- Joined: Fri Jun 13, 2008 9:06 pm
Re: C++ -kysymykset
Noniin, sain lopullisesti windows vista käyttikseni pois pelistä (koneen formatointikaan ei auttanut, pahensi vain tilannetta...) ja asensin linuxin (kubuntu) ja päätin siisrtyä kokonaan c++, joten tarvin apua, miten sillä koodataan linuxissa, käytän kade? editoria ja sillä tuon koodin kirjoitus onnistuu mainiosti, mutta haluaisin välissä kääntää koodiani, joten miten se tapahtuu?
Ja sitten, miten luodaan omia kirjastoja? Kun sain kehteltyä hyvin toimivan hahmon tietoja sisältävän systeemin, joka on melkeinpä valmis, ainakin pelini osalta. Tätä myös hyödyntäisin, kun teen uusia moduuleja, eli maailman jne... käsittelyyn. Myös olisi hyvä, jos kertoisitte myös muista ohjelmista, joista on hyötyä projektissa. Itse ainakin ymmärsin, että makefile:t ovat melkeinpä pakko, sekä ehkä joku versionhallintasofta, kun ohjelmaa alkaa jakamaan. Eli mielellään "täydellinen" kvaus, mitä tarvitaan oman ohjelman uudelleenlevittämisessä. Noin, tuossapa taisi olla kaikki kysymykset.
PS: sori tuplapostaus...
Ja sitten, miten luodaan omia kirjastoja? Kun sain kehteltyä hyvin toimivan hahmon tietoja sisältävän systeemin, joka on melkeinpä valmis, ainakin pelini osalta. Tätä myös hyödyntäisin, kun teen uusia moduuleja, eli maailman jne... käsittelyyn. Myös olisi hyvä, jos kertoisitte myös muista ohjelmista, joista on hyötyä projektissa. Itse ainakin ymmärsin, että makefile:t ovat melkeinpä pakko, sekä ehkä joku versionhallintasofta, kun ohjelmaa alkaa jakamaan. Eli mielellään "täydellinen" kvaus, mitä tarvitaan oman ohjelman uudelleenlevittämisessä. Noin, tuossapa taisi olla kaikki kysymykset.
PS: sori tuplapostaus...
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
En tiedä mitään Linuxille ohjelmoinnista, mutta muuten kyllä. Varsinaista versionhallintaa ei tarvita jos kehität softaasi yksikseen. Sen avulla voidaan pitää usean henkilön samaan koodiin tekemät muutokset kasassa helposti, mutta yhden henkilön kanssa sitä ei tarvita. Toki sitä voi käyttää jos haluaa, mutta siitä saatava hyöty ei ole välttämättä niin suurta että säätäminen kannattaa. Varmuuskopiot (ja tiedostojenvertailusofta) pitäisi riittää mainiosti.lukutoukka wrote:...sekä ehkä joku versionhallintasofta, kun ohjelmaa alkaa jakamaan.
Jos haluat jakaa softan jossain vaiheessa, niin yksi mahdollisuus on perustaa sille projekti esimerkiksi sourceforge.net:iin.
En edelleenkään tiedä Linuxpuolella homman etenemistä, mutta eikö kirjasto tehdä samalla tavalla kuin windowsin puolellakin? Kääntäjälle kerrotaan, että koodisi käännetään kirjastoksi, ja kun sitä halutaan käyttää, jaetaan kirjastotiedosto ja siihen liittyvä headeri.Ja sitten, miten luodaan omia kirjastoja?
OoO
Re: C++ -kysymykset
Itse näkisin asian niin, että versionhallinta kannattaa aina, jos projektin ottaa yhtään vakavammin. Subversion-ohjelmistoon kannattaa siis tutustua.
Linux-puolella C++-ohjelmoinnista löytyy paljon juttuja netistä, mutta sieltä järkevän datan löytäminen onkin työlästä. Avainsana onkin Gnu autotools, joiden avulla saadaan helposti luotua kääntöasetukset projektille kuin projektille. Konffauksen jälkeen ohjelman kääntämiseen riittää suorittaa make-komento.
Varsinaiseen kääntämiseen tarvitset kuitenkin jonkun c++-kääntäjän Linuxiisi asennettuna. Lisäksi gnu autotools -työkalut tarvitsevat monia muita paketteja, joita en nyt ulkoa muista. Jos gcc:tä ei ole jo asennettu asenna se kirjoittamalla sudo apt-get install gcc Kubuntun konsoliin. Gnu autotoolsista on hyvä (englanninkielinen) tutoriaali osoitteessa http://www.lrde.epita.fr/~adl/autotools.html.
Käytännössä homma menee suurin piirtein näin:
1) Luot configure.ac-tiedoston, jonne määritellään projektin kääntämiseen liittyvät asiat kuten kääntäjä, projektin nimi ja versionumero sekä kirjastot, joita projekti tarvitsee kääntämisen yhteydessä.
2) Luot Makefile.am-tiedostot tarvittaviin hakemistoihin. Makefile.am-tiedostot sisältävät tietoja eri kansion sisällä olevien tiedostojen käyttäytymisestä käännösprosessin aikana. Siellä mm. määritellään käännettävän lähdekooditiedostot.
3) Ajat projektin juuressa komennon autoreconf --install, jonka jälkeen projekti valmistellaan kääntämistä varten.
4) Ajat make-komennon, jolloin projekti käännetään.
Gnu autotoolsin avulla voit myös määritellä omia kirjastoja käännettäväksi. Lueskele yllä mainitusta osoitteesta löytyvää tutoriaalia, niin homma varmaan avautuu hiukan paremmin.
Linux-puolella C++-ohjelmoinnista löytyy paljon juttuja netistä, mutta sieltä järkevän datan löytäminen onkin työlästä. Avainsana onkin Gnu autotools, joiden avulla saadaan helposti luotua kääntöasetukset projektille kuin projektille. Konffauksen jälkeen ohjelman kääntämiseen riittää suorittaa make-komento.
Varsinaiseen kääntämiseen tarvitset kuitenkin jonkun c++-kääntäjän Linuxiisi asennettuna. Lisäksi gnu autotools -työkalut tarvitsevat monia muita paketteja, joita en nyt ulkoa muista. Jos gcc:tä ei ole jo asennettu asenna se kirjoittamalla sudo apt-get install gcc Kubuntun konsoliin. Gnu autotoolsista on hyvä (englanninkielinen) tutoriaali osoitteessa http://www.lrde.epita.fr/~adl/autotools.html.
Käytännössä homma menee suurin piirtein näin:
1) Luot configure.ac-tiedoston, jonne määritellään projektin kääntämiseen liittyvät asiat kuten kääntäjä, projektin nimi ja versionumero sekä kirjastot, joita projekti tarvitsee kääntämisen yhteydessä.
2) Luot Makefile.am-tiedostot tarvittaviin hakemistoihin. Makefile.am-tiedostot sisältävät tietoja eri kansion sisällä olevien tiedostojen käyttäytymisestä käännösprosessin aikana. Siellä mm. määritellään käännettävän lähdekooditiedostot.
3) Ajat projektin juuressa komennon autoreconf --install, jonka jälkeen projekti valmistellaan kääntämistä varten.
4) Ajat make-komennon, jolloin projekti käännetään.
Gnu autotoolsin avulla voit myös määritellä omia kirjastoja käännettäväksi. Lueskele yllä mainitusta osoitteesta löytyvää tutoriaalia, niin homma varmaan avautuu hiukan paremmin.
Re: C++ -kysymykset
Kiitoksia tiedoista, auttoivat huomattavasti linux puolella ohjelmoinnissa.
Re: C++ -kysymykset
Olen "aika" uusi C++: ssan kanssa joten:
Miksi tämä ei toimi?
(kannataako opetella C vai C++ ?)
Miksi tämä ei toimi?
Code: Select all
#include <iostream.h>
void main()
{
cout << "Hello!";
}
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
puuttu return 0; ja void main() tilalle int main(void).
yh:
yh:
Code: Select all
#include "iostream.h"
int main(void)
{
cout << "Heipa hei\n";
return 0;
}
Last edited by phons on Sat Dec 13, 2008 7:39 pm, edited 2 times in total.
Re: C++ -kysymykset
laitakko koodinphons wrote:puuttu return 0; ja void main() tilalle int main(void).
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Suorita ohjelma komentoriviltä tai vaihtoehtoisesti kirjoita koodiksi:Miksi tämä ei toimi?
Code: Select all
#include<iostream>
using namespace std;
int main(int argc,char* argv[]){
cout<<"Hello, world!\n";
cin.get();
}
C++ on ikäänkuin C johon on lisätty ominaisuuksia. Joten C++.(kannataako opetella C vai C++ ?)
E: Evotin BB-tagien kanssa :P
Re: C++ -kysymykset
käynnistys komentoriviltä ei toimi
EDIT: yritän kääntää vanhaa C++ uuteen: miksi ei toimi?
EDIT: yritän kääntää vanhaa C++ uuteen: miksi ei toimi?
Code: Select all
#include <iostream>
using namespace std;
int main(void)
{
cout << "Nimesi? ";
char nimi[20]
cin >> nimi;
cout << "n\Terve "<<nimi;
return 0;
}
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
Riviltä char nimi[20] puuttuu puolipiste! korjattu versio tuossa lainauksessa.Jani wrote:käynnistys komentoriviltä ei toimi
EDIT: yritän kääntää vanhaa C++ uuteen: miksi ei toimi?
Code: Select all
#include <iostream> using namespace std; int main(void) //Se void on ihan turha, argumentit mieluummin! en vain nyt juuri muista niitä muuttujia. { cout << "Nimesi? "; char nimi[20]; cin >> nimi; cout << "n\Terve "<<nimi; return 0; }
Re: C++ -kysymykset
anteeksi taas ussi, mutta näin avun tarve näkyykin...
Eli kannataako Väri muutta näin: system("color NT")?
Jos jotenkin muuten, niin kertokaa miten.
N=Näytönväri
T=Tekstinväri
Eli kannataako Väri muutta näin: system("color NT")?
Jos jotenkin muuten, niin kertokaa miten.
N=Näytönväri
T=Tekstinväri
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
Tollaisesta en ole itsekkään tiennyt. Missä kirjastossa se sisältyy?
Re: C++ -kysymykset
No ei missään!phons wrote:Tollaisesta en ole itsekkään tiennyt. Missä kirjastossa se sisältyy?
testaa vaikka näin:
Code: Select all
#include <iostream>
using namespace std;
int main()
{
system("color 09");
cout << "Terve!\n";
system("pause");
system("cls");
}
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Sinun tulee luoda windows ikkuna WIN API:a käyttäen. Jos haluat päästä helpolla niin lataa kirjasto, jossa nämä hommat ovat tehty valmiiksi sinun puolestasi, esim. SDL. Ja kannattaa myös harjoitella persuteet kunnolla ennekuin alkaa mitään grafiikka hommia tekemään.Jani wrote:No ei missään!phons wrote:Tollaisesta en ole itsekkään tiennyt. Missä kirjastossa se sisältyy?
testaa vaikka näin:
EDIT: Miten muutan C++ ohjelman muuksi kuin komentorivin näköiseksi?Code: Select all
#include <iostream> using namespace std; int main() { system("color 09"); cout << "Terve!\n"; system("pause"); system("cls"); }
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: C++ -kysymykset
En keksinyt parempaakaan paikkaa tälle jokaiselle tuttu: system("color NT"); komennon ohjeelle
(N=Näytönväri T=Tekstinväri)
Näin helppoa se on:
C++ (kuten varmaan arvattiinkin)
(N=Näytönväri T=Tekstinväri)
Näin helppoa se on:
Code: Select all
#include <iostream>
using namespace std;
int main()
{
system("title Color komennon ohje");
system("color 0F");
system("help color");
system("pause");
}
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
MS-DOS only?Jani wrote:En keksinyt parempaakaan paikkaa tälle jokaiselle tuttu: system("color NT"); komennon ohjeelle
(N=Näytönväri T=Tekstinväri)
Näin helppoa se on:
C++ (kuten varmaan arvattiinkin)Code: Select all
#include <iostream> using namespace std; int main() { system("title Color komennon ohje"); system("color 0F"); system("help color"); system("pause"); }
Re: C++ -kysymykset
Häh????esa94 wrote:MS-DOS only?
Tuo oli tehty Dev-C++ ohjelmalla
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
Ensinnäkin: Se on koodattu Dev-C++-IDE:llä, mutta käännetty todennäköisesti MinGW:llä.Jani wrote:Häh????esa94 wrote:MS-DOS only?
Tuo oli tehty Dev-C++ ohjelmalla
Toisekseen, kaikki system()-funktion (Vai proseduurin? Emt.) kutsut kutsuvat Windowsin järjestelmän komentoriviä, joka nyt sattuu olemaan MS-DOS. Eli siis lähetät komentoriville komennon "color 0F". Tuo toimii tod. näk. siis vain windowsin tai dosin alla, muttei *NIX-järjestelmissä. Yleisesti ottaen system():ä ei kannata käyttää. Ainakaan jos aikoo tehdä toteutuksen muillekin alustoille.
Re: C++ -kysymykset
miten suoritan C++ ohjelman komentoriviltä?
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: C++ -kysymykset
Samalla tavalla kuin minkä tahansa muunkin ohjelman: kirjoittamalla sen nimen (mahdollisesti polkuineen, ellet ole oikeassa kansiossa).Jani wrote:miten suoritan C++ ohjelman komentoriviltä?
Voisitko esittää ongelmasi hieman tarkemmin?