com base nisso: https://stackoverflow.com/questions/5925678/location-of-c-standard-library
gcc --print-file-name=libm.a
return:
/usr/lib/gcc/x86_64-linux- gnu/9/../../../x86_64-linux-gnu/libm.a
No entanto, não consigo encontrá-lo. No diretório atual (/usr/lib/gcc/x86_64-linux-gnu/9): eu ls
comando, retorno o seguinte:
cc1 crtfastmath.o finclude libcaf_single.a libgfortran.spec liblsan.so libobjc_gc.so libsupc++.a
cc1plus crtoffloadbegin.o include libcc1.so libgomp.a liblsan_preinit.o libquadmath.a libtsan.a
collect2 crtoffloadend.o libasan.a libgcc.a libgomp.so liblto_plugin.so libquadmath.so libtsan.so
crtbegin.o crtoffloadtable.o libasan.so libgcc_eh.a libgomp.spec liblto_plugin.so.0 libsanitizer.spec libubsan.a
crtbeginS.o crtprec32.o libasan_preinit.o libgcc_s.so libitm.a liblto_plugin.so.0.0.0 libssp_nonshared.a libubsan.so
crtbeginT.o crtprec64.o libatomic.a libgcov.a libitm.so libobjc.a libstdc++.a lto-wrapper
crtend.o crtprec80.o libatomic.so libgfortran.a libitm.spec libobjc.so libstdc++.so lto1
crtendS.o f951 libbacktrace.a libgfortran.so liblsan.a libobjc_gc.a libstdc++fs.a plugin
apenas finclude , include , plugin são diretórios. Já verifiquei se libm.a não está lá.
Por que se incomodar, porque base neste link. ( https://www.linuxtopia.org/online_books/an_introduction_to_gcc/gccintro_17.html ) Eu deveria ser capaz de fazer o seguinte comando se descobrisse o caminho completo libm.a adequado.
gcc -Wall calc.c /usr/lib/libm.a -o calc
No entanto, o comando a seguir ainda funciona.
gcc -Wall calc.c -lm -o calc
O '../' no nome do arquivo que o gcc lhe deu significa que você vai até o diretório pai.
Então, libm está realmente localizado em
/usr/lib/x86_64-linux-gnu/libm.a
.