首页 > 解决方案 > 如何使用 Makefile 创建链接到静态库的可执行文件?

问题描述

我是 C 新手,Makefile 让我很难受。在 Makefile 中,我想制作一个链接到静态库的可执行文件。test.c我的理解是,从位于src/project命令中生成一个可执行文件将是gcc src/project/test.c -o test,并且这个可执行文件将被命名为 test。如果我想让可执行文件也与静态库链接,lib.a我该怎么做?

标签: cmakefile

解决方案


首先,lib.a它不是一个规范的“有效”静态库文件名,库文件名应该以库的实际名称开头lib并继续,例如libsomething.a. 然后,您可以将此类库与 链接-lsomething,假设它位于适当的系统目录中。如果没有,您可以添加-Lpath/to/directory以使链接器也查找path/to/directory. libsomething.a另请参阅:搜索和链接库目录的顺序。或者,如果是静态库,您也可以将库直接添加到 GCC 命令行:gcc prog.c libsomething.a.

在一个非常基本的情况下Makefile,我会做这样的事情:

test: src/project/test.c path/to/libsomething.a
    gcc $^ -o $@

推荐阅读