gpt4 book ai didi

c - Fedora 动态替换 libm.a(静态库)?

转载 作者:太空宇宙 更新时间:2023-11-04 08:08:36 28 4
gpt4 key购买 nike

我只是想弄明白,为什么 Fedora 没有静态库 libm.a,如果这是事实,我应该使用?如前所述 hereStackOverflow 中,我可以简单地从 yum 安装 pkg,但认为 Fedora 有替代品是可以接受的改为默认 lib。否?


已编辑

我正在尝试编译这个:

#include <stdio.h>
#include <stdlib.h>

void fred(int arg)
{
printf("fred: you passed %d\n", arg);
}

输出是这样的:

$ gcc -o fred fred.c /usr/lib64/libm.so
/usr/lib/gcc/x86_64-redhat-linux/6.2.1/../../../../lib64/crt1.o: En la función `_start':
(.text+0x20): referencia a `main' sin definir
collect2: error: ld devolvió el estado de salida 1

使用 lm/usr/lib/libm.a/usr/lib64/libm.a 测试 ggc>

我已经完成了这里和其他帖子中提到的所有内容,yum install glibc-static 并检查了 /usr/lib64/libm.so


编辑

repoquery --whatprovides/usr/lib64/libm.a:

failure: repodata/repomd.xml from fedora-cisco-openh264: [Errno 256] No more mirrors to try.
https://codecs.fedoraproject.org/openh264/24/x86_64/repodata/repomd.xml: [Errno -1] repomd.xml signature could not be verified for fedora-cisco-openh264

谢谢。

最佳答案

这里有几件事....

  1. 你的小例子中没有使用任何数学函数,所以你真的不需要 libm

  2. 如果您确实需要 libm,那么您实际上并不需要static libm.a。您可以链接到动态文件,您可以使用 gcc -lm 而不是直接给出文件名。

  3. 如果您确实出于某种原因需要libm.a,您可以在glibc-static 包中找到它——但是出于多种原因,不建议这样做。

  4. 正如错误消息所说,真正的错误是您缺少 main() 函数。尝试将其添加到文件底部:

    int main (int argc, char **argv) { 弗雷德(1); 弗雷德(2); 弗雷德(42);

然后用gcc -o fred fred.c编译

关于c - Fedora 动态替换 libm.a(静态库)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41002773/

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