现在我在以下示例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
它有效,但现在我想使用'make' 命令,我无法让它工作。
它只是不编译头文件 和编辑gcc的库是我编辑之前的 它接受cs50库。
所以现在我想添加'make' 命令如下:
-lcs50
有人可以帮我吗?
答案 0 :(得分:2)
在Makefile的顶部附近,添加以下行:
LDLIBS = -lcs50
如果您正在使用Make的默认(隐式)规则,那么您就需要这样做。如果您使用显式规则,则需要将$(LDLIBS)添加到显式规则中。
如果没有Makefile,那么make正在使用默认规则,您可以使用
创建一个makefileecho LDLIBS = -lcs50 > Makefile
或通过在环境中的LDLIBS中指定所需的库来告诉make链接某些库。例如,如果您使用的是sh派生的shell(除了csh或tcsh之外的其他任何东西),您可以这样做:
LDLIBS=-lcs50 make target
如果您使用的是csh变体,则可以执行以下操作:
env LDLIBS=-lcs50 make target
或者只是(再次,对于非csh shell)
export LDLIBS=-lcs50
在运行make之前。 (对于csh变体,请执行setenv LDLIBS -lcs50)
答案 1 :(得分:0)
你有没有忘记你必须告诉gcc CS50库所在的目录?
gcc … -L/directory/for/cs50_library -lcs50
答案 2 :(得分:0)
您可以使用下面的链接“ make”命令来释放和包含
make <filename_without_extension> LDLIBS="-l<lib1> -l<lib2>"
假设您有要使用make命令进行编译的server1.cpp文件,
make server1 LDLIBS="-lcpprest -lpthread -lssl -lcrypto" LDFLAGS="-L/usr/lib/" CXXFLAGS="-I/usr/include/"
输出将展开编译命令,
g++ -I/usr/include/ -L/usr/lib/ server1.cpp -lcpprest -lpthread -lssl -lcrypto -o server1