當我試圖包括<math.h>
我發現我需要使用命令gcc -lm
是否可以從gcc中的C源代碼內部鏈接到數學庫?
到數學函數庫的鏈接,但我正在尋找另一種方式爲「代碼」的數學庫,不需要用戶進行編譯鏈接使用任何選項..
可以gcc -lm
使用#pragma
什麼的C代碼?
編輯:我已經改變了-ml
到-lm
當我試圖包括<math.h>
我發現我需要使用命令gcc -lm
是否可以從gcc中的C源代碼內部鏈接到數學庫?
到數學函數庫的鏈接,但我正在尋找另一種方式爲「代碼」的數學庫,不需要用戶進行編譯鏈接使用任何選項..
可以gcc -lm
使用#pragma
什麼的C代碼?
編輯:我已經改變了-ml
到-lm
爲用戶(或實際上爲開發人員)簡化併發症的常用方法是編寫一個makefile。
首先,它是gcc -lm
沒有沒有#pragma
爲了給連接指令
不,你需要告訴鏈接程序庫中,以便鏈接鏈接圖書館。
鏈接器不知道代碼,只知道編譯的目標文件。它不會看到語言特定的附註。
不,gcc沒有鏈接庫的編譯指示。您必須使用命令行選項鍊接到數學庫(它的編號爲-lm
而不是-ml
)
使用-lm
是唯一選項。此外,使用#pragma
這是微軟特有的,而且很髒。想象一下,有一個新的超高效的數學庫,它需要-lsupermath而不是-lm - 那麼你必須修改你的代碼而不是修改makefile或make config文件。
你不說哪個UNIX外殼使用的是的,但如果這僅僅是爲了方便地使用,簡單的寫一個shell函數:
gcm() {
gcc -lm $*
}
假如把它放在你的shell啓動文件,你可以編譯和鏈接與數學庫:
gcm mycode.c
我懷疑這在一般情況下是有用 – 2010-05-17 11:33:21
但是我看不出它是如何回答關於編譯指示的問題;) – 2010-05-17 15:05:21