Ero sivun ”CMake syvemmin” versioiden välillä

Siirry navigaatioon Siirry hakuun
2 022 merkkiä lisätty ,  10. joulukuuta 2024
Rivi 73: Rivi 73:


== Ensimmäinen C/C++ ohjelma ==
== Ensimmäinen C/C++ ohjelma ==
Seuraavaksi voimmekin tehdä ensimmäisen käännettävän C/C++-ohjelman. Se kirjoitetaan oikeaoppisesti src-alikansioon, joten teemme sille projektikansiomme juureen uuden kansion.
Päätteellä voisi kirjoittaa seuraavaa:


<syntaxhighlight lang=bash line>
cd ..
mkdir src
touch src/hello.cpp
</syntaxhighlight>


Ensimmäisessä rivissä siirrymme build-kansiosta projektin juurikansioon. Luomme sen alle src-kansion, jossa on hyvä pitää projektimme C/C++-lähdetiedostoja.


Kirjoita äsken src-hakemistoon luotuun hello.cpp-ohjelmaan seuraavan (Esimerkin) sisältö, ja tallenna se.


<syntaxhighlight lang="C++" line>
#include <iostream>
int main(int args,char **argv) {
    std::cout << "ohjelman ajotiedoston nimi hakemistopolkuineen on " << argv[0] << "\n";
    return 0;
}
</syntaxhighlight>


Ohjelman voi kääntää käskyllä build-kansiostamme:
<syntaxhighlight lang=bash>
cd build
g++ ../src/hello.cpp -o hello
</syntaxhighlight>


Ohjelman ajaminen tapahtuu seuraavasti:
<syntaxhighlight lang=bash line>
./hello
</syntaxhighlight>


Seuraavaksi menemme takaisin build-kansioon, ja poistamme cmake:n tekemät tiedostot rm -r -käskyllä (varovasti rm -r käskyn kanssa, sillä se voi tuhota pahimmassa tapauksessa koko käyttäjän kotikansion, ja root-käyttäjänä se voi tuhota koko järjestelmän.).


<syntaxhighlight lang=bash line>
d ..
rm -r build
mkdir build
cd build
cmake ..
make all
</syntaxhighlight>
Huomaa, että edelleenkin ohjelmat (cmake ja make) suoriutuvat toimistaan ilman virheilmoituksia, mutta edelleenkään tuotoksena ei tule käänettyä ohjelmaa.
Ajamisen jälkeen huomaamme, ettei cmake-käännä ohjelmaa, vaan se toimii edelleen samalla tavalla kuin aiemminkin eli tulostaa eka-projekti:n tiedot.
Jotta saadaksemme cmake:n kääntämään ohjelman pitää meidän tehdä pieniä muutoksia. Lisäämme seuraavanlaisen rivin aikaisemmin luomamme CMakeLists.txt-tiedoston loppuun:
<syntaxhighlight lang=bash line StartLine=30>
add_executable("hello" "src/hello.cpp")
</syntaxhighlight>


==Käyttö==
==Käyttö==
54

muokkausta

Navigointivalikko