Diferență între revizuiri ale paginii „Legarea bibliotecii math in cmake”
De la WikiLabs
Jump to navigationJump to searchCbira (discuție | contribuții) |
Cbira (discuție | contribuții) |
||
| (Nu s-a afișat o versiune intermediară efectuată de același utilizator) | |||
| Linia 2: | Linia 2: | ||
<pre> | <pre> | ||
| − | Scanning dependencies of target | + | Scanning dependencies of target ClionExample |
| − | [ 50%] Building C object CMakeFiles/ | + | [ 50%] Building C object CMakeFiles/ClionExample.dir/main.c.o |
| − | [100%] Linking C executable | + | [100%] Linking C executable ClionExample |
| − | CMakeFiles/ | + | CMakeFiles/ClionExample.dir/main.c.o: In function `main': |
| − | /home/student/CLionProjects/ | + | /home/student/CLionProjects/ClionExample/main.c:10: undefined reference to `sqrt' |
</pre> | </pre> | ||
Acesta eroare se intampla asa cum se observa, nu la compilare (la consola se afiseaza Linking C executable ... si apoi eroarea "undefined referece to" respectiva functie => la linkeditare apare eroarea. Motivul este: nu s-a inclus biblioteca math in procesul de linkeditare a executabilului. Pentru a o rezolva, trebuie indicat in reteta de build (fisierul CMakeLists.txt) adaugarea bibliotecii math. | Acesta eroare se intampla asa cum se observa, nu la compilare (la consola se afiseaza Linking C executable ... si apoi eroarea "undefined referece to" respectiva functie => la linkeditare apare eroarea. Motivul este: nu s-a inclus biblioteca math in procesul de linkeditare a executabilului. Pentru a o rezolva, trebuie indicat in reteta de build (fisierul CMakeLists.txt) adaugarea bibliotecii math. | ||
<pre> | <pre> | ||
| − | + | target_link_libraries(PROIECTUL_MEU m) | |
</pre> | </pre> | ||
Versiunea curentă din 1 februarie 2026 09:58
Dupa compilarea fiecarui modul c, urmeaza etapa de link-editare. Daca in timpul acelei etape linkerul nu gaseste o functie pe care o chemati, va afisa la consola o eroare de acest tip:
Scanning dependencies of target ClionExample [ 50%] Building C object CMakeFiles/ClionExample.dir/main.c.o [100%] Linking C executable ClionExample CMakeFiles/ClionExample.dir/main.c.o: In function `main': /home/student/CLionProjects/ClionExample/main.c:10: undefined reference to `sqrt'
Acesta eroare se intampla asa cum se observa, nu la compilare (la consola se afiseaza Linking C executable ... si apoi eroarea "undefined referece to" respectiva functie => la linkeditare apare eroarea. Motivul este: nu s-a inclus biblioteca math in procesul de linkeditare a executabilului. Pentru a o rezolva, trebuie indicat in reteta de build (fisierul CMakeLists.txt) adaugarea bibliotecii math.
target_link_libraries(PROIECTUL_MEU m)
Un exemplu de fisier CMakeLists.txt modificat se poate vedea mai jos: