追蹤
。有你真好。
關於部落格
‧∴ ° 手心的太陽‧∴ °∴ ‧°‧∴ ☆╮
  • 322469

    累積人氣

  • 2

    今日人氣

    2

    追蹤人氣

collect2: ld returned 1 exit status

特別注意上面的錯誤訊息,唉啊!怎麼沒有編譯成功?它說的是『undefined reference to sin』,說的是『沒有 sin 的相關定義參考值!』,為什麼會這樣呢?這是因為 C 語言裡面的 sin 函示是寫在 libm.so 這個函式庫中,而我們並沒有在原始碼裡面加入相關的說明, 所以當然就需要在編譯與連結的時候將這個函式庫給他連結進執行檔裡面啊!所以我們可以這樣做: [root@linux ~]# gcc sin.c -lm -L/lib -L/usr/lib # 特別注意,那個 -lm 可以拆開成兩部份來看: # -l :是『加入某個函式庫(library)』的意思,而 # m :則是 libm.so 這個函式庫,其中, lib 與副檔名(.a 或 .so)不需要寫 # 所以 -lm 表示使用 libm.so (或 libm.a) 這個函式庫的意思~ # 至於那個 -L 後面接的路徑呢?這表示: #『我要的函式庫 libm.so 請到 /lib 或 /usr/lib 裡面搜尋!』 [root@linux ~]# ./a.out 1.000000 上面的說明很清楚了吧!!不過,要注意的是,由於 Linux 預設是將函式庫放置在 /lib 與 /usr/lib 當中,所以您沒有寫 -L/lib 與 -L/usr/lib 也沒有關係的!不過,萬一哪天您使用的函式庫並非放置在這兩個目錄下,那麼 -L/path 就很重要了!否則會找不到函式庫喔! --- http://linux.vbird.org/linux_basic/0520source/0520source_code_and_tarball-fc4.php
相簿設定
標籤設定
相簿狀態