2011-03-06 54 views
-1

到「使」命令這是頭文件和C文件: cs50.hcs50.c如何添加庫在C

現在我在使用它們下面例如http://www.paste.ubuntu.com/576370/ - 這不再是可用。

我已經把頭文件中/usr/bin/include或類似的東西,當我嘗試編譯使用gcc -o xxx xxx.c我的代碼,這是行不通的,所以試圖解決這個問題,並通過以下方式工作:http://www.paste.ubuntu.com/576371/ - 這不再是可用。

現在我想做點什麼讓'make'命令像gcc一樣工作。

我需要做什麼?


下面是老話題:

我用gcc命令 編譯C程序但一段時間後 我有一個問題。我需要 來編譯一個新的頭文件並使用它作爲一個庫。

頭文件被稱爲cs50.h

這樣做之後,它的好,我可以 編譯使用以下

gcc -o xxx xxx.c -lcs50 

它的工作原理,但現在我想用「製作」 命令,我無法得到它的工作。

它只是不編譯頭文件 和庫作爲gcc之前,我編輯 它接受cs50庫。

所以現在我要添加到「製作」 命令如下:-lcs50

誰能幫我在這嗎?

+4

有人可能會幫助*如果您向我們展示您的Makefile *。 – 2011-03-06 09:19:56

+1

Ubuntu粘貼已被刪除。這個問題對沒有他們的人沒有用處。 – Moshe 2013-08-09 00:55:48

+0

由於定義代碼和問題的鏈接已不再可用,並且此處的信息不具有令人信服的獨特性(關於類似問題還有許多其他問題),所以我正在投票結束此問題。 – 2016-07-30 14:17:17

回答

2

近你的Makefile的頂部添加一行:

 
LDLIBS = -lcs50 

如果您正在使用make的默認值(隱含的)規則的建築物,然後就是所有你需要做的。如果您使用顯式規則,則需要將$(LDLIBS)添加到顯式規則中。

如果沒有Makefile文件,然後進行使用的是默認的規則,你可以只創建一個makefile與

 
echo LDLIBS = -lcs50 > Makefile 

或通過在LDLIBS指定所需的庫告訴使得某些庫鏈接環境。例如,如果您使用的是SH-衍生殼(比csh或tcsh其他任何東西),你可以這樣做:

 
LDLIBS=-lcs50 make target 

如果你使用的是csh的變種,你可以這樣做:

 
env LDLIBS=-lcs50 make target 

或者只是做(再次,對於非csh shell)

 
export LDLIBS=-lcs50 

運行前make。 (對於csh變體,請執行LDLIBS -lcs50)

+0

開始如何打開makefile? – XMasterrrr 2011-03-06 09:53:28

+0

@Xmasterrrr $編輯器Makefile(即「vi Makefile」或「emacs makefile」或「nedit GNUMakefile」....可能性無窮無盡) – 2011-03-06 09:55:36

+0

它的位置在哪裏? – XMasterrrr 2011-03-06 09:58:04

0

你忘了你必須告訴gcc CS50庫位於哪個目錄嗎?

gcc … -L/directory/for/cs50_library -lcs50 
+0

所以我會從第一個 – XMasterrrr 2011-03-06 09:32:38