gcc和使用CFLAGS链接文件

gcc和使用CFLAGS链接文件,gcc,makefile,Gcc,Makefile,我正在尝试运行学习C硬方法手册中的程序 我需要将库文件名'build/liblcthw.a'作为最后一个参数传递 例如: 无法在Ubuntu上运行: gcc-g-O2-Wall-Wextra-Isrc-rdynamic-DNDEBUG build/liblcthw.a tests/list_tests.c-o tests/list_tests 在Ubuntu上工作: gcc-g-O2-Wall-Wextra-Isrc-rdynamic-DNDEBUG tests/list_tests.c-o t

我正在尝试运行学习C硬方法手册中的程序

我需要将库文件名'build/liblcthw.a'作为最后一个参数传递

例如:

无法在Ubuntu上运行:

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

在Ubuntu上工作:

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


如何在Makefile中处理此问题?CFLAGS只会将其添加到源文件名之前,它不起作用。如何强制CFALGS在命令末尾添加库文件名?

CFLAGS是C编译器的标志。库通常包含一个名为LDLIBS的变量。设置LDLIBS=build/liblcthw.a,看看是否有效。

CFLAGS是C编译器的标志。库通常包含一个名为LDLIBS的变量。设置LDLIBS=build/liblcthw.a,看看是否有效。

第一次调用没有成功,因为命令行中源和库的顺序错误。正确的顺序是源文件,然后是对象文件,然后是静态库,然后是动态库。

第一次调用没有成功,因为命令行中源和库的顺序是错误的。正确的顺序是源文件,然后是目标文件,然后是静态库,最后是动态库。

+1。用汽车制造商的话说,LIBS或LDADD也是一个常用术语。用汽车制造商的话说,LIBS或LDADD也是一个常用术语。