1.首先我們寫乙個簡單的c源程式;
#include
#include
void main()
2.編譯c檔案 gcc -o main main.c
編譯會出現錯誤,找不到sqrt該函式
3.需要執行以下命令來解決
gcc math.c -lm -o math
那麼-lm是什麼意思呢?-l是指定程式鏈結哪個靜態庫或者動態庫,-m表示的是數學庫,也就是使用math.h標頭檔案,就得鏈結數學庫進行編譯,-lm的意思就是告訴程式鏈結數學庫;
解決方法2:
gcc -c main.c
# -c引數的作用是讓gcc只編譯,不鏈結
gcc -c test.c
gcc -o main main.o test.o
# 將編譯好的目標**鏈結
方法3:
gcc -o main main.c test.c
方法4:
gcc main.c -o main -include foo.h foo.c
c 包含自定義標頭檔案
在c 中自定義的庫通過原始碼復用的方式在其他專案中使用,需要新增相應的標頭檔案,有以下幾種方式在其他專案中包含自定義的標頭檔案 將自定義庫的標頭檔案 h 與原始檔 cpp 複製到當前專案資料夾下,然後在專案距中使用 include headerfile.h 即可 缺點是每個新專案都要去複製標頭檔案與...
systemtap引用自定義標頭檔案的手藝精簡版
不夠精簡是不是?那是因為我的水平還不夠6,其實stap是可以直接呼叫system來執行外部命令的,如此就不需要再進入guru模式來stap自己了。指令碼如下 usr local bin stap selftap probe process usr local bin stap function ma...
c語言 自定義型別
struct stu 分號不能丟 匿名結構體型別 struct x struct a 20 p p x 非法的操作,上面倆種完全是不同的宣告 struct node 結構體的自引用 struct node n1 null 直接初始化 struct node n2 null 結構體巢狀初始化 先來看下...