gcc -lm -lpthread 一類的理解

C代碼調用math.h中的函數有問題,如sqrt函數。會出現問題(點擊看問題)。函數

緣由是調用<math.h>中的函數,編譯時須要連接對應的庫 libm優化


-lm命令是使編譯的時候,連接數學庫;
-lptread 連接線程庫,能夠使本身編譯的庫 ;
g++編譯程序成爲.o目標函數,而後須要和庫函數鏈接到一塊兒;
gcc 在編譯時就能夠將其替換爲對應的值(gcc 優化的一部分),從而不須要連接 sqrt 所在的數學庫 libm;而像 sqrt(n); 這種調用,通常沒法作這種替換,所以須要連接 libm。.net

總結:線程

數學庫 -lm ;blog

 posix線程 -lpthread ;
-lc 是link libc;
-lm 是link libm;
-lz 是link libz;
--------------------- 
做者:worthsen 
來源:CSDN 
原文:https://blog.csdn.net/qq_38880380/article/details/78914212 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!數學

相關文章
相關標籤/搜索