gpt4 book ai didi

c - 如何使用 gcc 编译带有源代码文件的库存档?

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:21 25 4
gpt4 key购买 nike

TL;DR - 我需要用 test.o 编译 archive.a 来生成可执行文件。

背景 - 我试图从我正在修改的软件包中调用单独库中的函数,但该函数(字符串解析器)正在创建分段违规。故障肯定发生在库中,开发人员已要求提供发生错误的测试用例。与其让他尝试编译我正在处理的相当大的软件包,我宁愿给他发送一个调用适当函数的简单程序(希望死在同一个地方)。他的库也使用了多个系统库(lapack、cblas 等),因此链接需要满足我的所有想法。

我可以链接到创建他的库时创建的 .o 文件,但当然它们不会链接到适当的系统库。

这看起来应该是直截了当的,但它让我感到困惑。

最佳答案

.a扩展名表明它是一个静态库。因此,为了链接到它,您可以在链接阶段使用开关:

gcc -o myprog -L<path to your library> main.o ... -larchive

通常你使用-L 来添加库的存储路径(除非它在当前目录)并且你使用-l<libname>指定一个库。库名没有扩展名。如果库名为 libarchive.a,您仍会给出 -larchive。如果您想指定库的全名,那么您可以使用即 -l:libname.a

更新

如果库路径是/usr/lib/libmylibrary.a你会用

-L/usr/lib -lmylibrary

关于c - 如何使用 gcc 编译带有源代码文件的库存档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17028236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com