2011-03-06 53 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