c - 如何使用 Makefile 创建链接到静态库的可执行文件?
问题描述
我是 C 新手,Makefile 让我很难受。在 Makefile 中,我想制作一个链接到静态库的可执行文件。test.c
我的理解是,从位于src/project
命令中生成一个可执行文件将是gcc src/project/test.c -o test
,并且这个可执行文件将被命名为 test。如果我想让可执行文件也与静态库链接,lib.a
我该怎么做?
解决方案
首先,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 $@
推荐阅读
- sql - 为什么 ColdFusion 哈希函数在这些场景下会返回不同的结果?
- javascript - 如何在 nuxt/vue.js 中按类别过滤帖子?
- python - sklearn,如何更改适当维度的数组
- typescript - 如何将模块中的类暴露给 TypeScript 的全局命名空间?
- azure - 具有 AZURE B2C 身份验证的 Spring Boot OAuth2 服务器
- javascript - 在 JavaScript Web 应用程序中开始下载从 RESTful 端点提供的大文件,这需要为用户所需的格式设置标头
- google-cloud-platform - 使用服务帐户在 Google Cloud 项目上启用 Dialogflow API
- python - 如何访问在字典中存储为时间序列字典的 JSON 数据?
- r - 使用 H2O GBM 模型的 MOJO 文件重现预测
- docker - 将容器化应用程序分发给最终用户