c - 在 gcc 编译器的标志中排除 "lib"前缀

标签 c gcc makefile

伙计们给了我他们的库:libA.alibB.a。此外,我还有头文件:header_A.hheader_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 $@

但是!编译器说,它找不到 libAlibB。我对此进行了更改:

CFLAGS = -lA -lB

现在可以了。是否有必要始终抑制 lib 中的 "lib" 前缀?或者它如何知道我的库的名称?

最佳答案

多年来,这一直是 C 中的标准行为。

-lX 选项将自动提示链接器查找名为 libX 的内容,而不是 X。所以,是的,您始终将名称的 lib 部分排除在 -l 之外。

关于c - 在 gcc 编译器的标志中排除 "lib"前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35132627/

相关文章:

在 C 中从 HEX 颜色转换为 RGB 结构

c - 如何将可执行入口点的名称从 main 更改为其他名称?

c++ - 使用 boost to_lower & trim 时出现 gcc 链接器错误

c - JNI 库中 OS/X 上的指针截断为 'realloc()'

makefile - 如何让我的应用程序独立于其位置链接库?

makefile - 如果条件在Makefile中的目标内

使用 system() 函数时混淆控制台和文件输出

VS Code 中的比较警告

c - strlen 给出意外的输出 C

makefile - FreeBSD 上的 make 不支持 "ifdef"指令