首页 > 解决方案 > 将库名称附加到 makefile 中的 CFLAGS

问题描述

我想在使用 make 编译一些目标文件时添加 $(STATIC_LIB) 。
但是,以这种方式修改 CFLAGS :

tests: CFLAGS +=$(STATIC_LIB)
tests: $(OBJECT_FILES)
      echo "Do something"

将库放在源文件之前。我如何将库放在任何文件的名称之后,在 CFLAGS 的末尾?

而不是这个:

cc -g -O2 -Wall -Wextra -Isrc/lcthw -rdynamic -DNDEBUG  build/liblcthw.a    tests/list_tests.c   -o tests/list_tests

我想要:

cc -g -O2 -Wall -Wextra -Isrc/lcthw -rdynamic -DNDEBUG      tests/list_tests.c  -o tests/list_tests build/liblcthw.a

标签: makefile

解决方案


假设您使用默认规则来链接程序,则应将库添加到LDLIBSmakefile 变量中,而不是CFLAGS. CFLAGS用于编译器标志,而不是链接器标志。

如果您已经编写了自己的链接规则,那么我们无法回答您的问题,因为您没有向我们展示您编写的链接规则。


推荐阅读