伙计们给了我他们的库:libA.a
和 libB.a
。此外,我还有头文件:header_A.h
和 header_B.h
。我需要将它们添加到我的 Makefile
中。我添加了这个:
INCLUDES = -I/home/me/lib_from_guys/include
LIBS = -L/home/me/lib_from_guys/libraries
CFLAGS = -llibA -llibB
hello:
$(CC) $(INCLUDES) $(LIBS) $(CFLAGS) $< -o $@
但是!编译器说,它找不到 libA
和 libB
。我对此进行了更改:
CFLAGS = -lA -lB
现在可以了。是否有必要始终抑制 lib 中的 "lib"
前缀?或者它如何知道我的库的名称?
最佳答案
多年来,这一直是 C 中的标准行为。
-lX
选项将自动提示链接器查找名为 libX
的内容,而不是 X
。所以,是的,您始终将名称的 lib
部分排除在 -l
之外。
关于c - 在 gcc 编译器的标志中排除 "lib"前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132627/