首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fedora动态替换libm.a(静态库)?

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

Stack Overflow用户
提问于 2016-12-06 18:55:57
回答 1查看 895关注 0票数 0

我只是想弄清楚,为什么Fedora没有静态库libm.a,如果它是事实,我应该使用它?正如在here in StackOverflow中提到的,我可以简单地从yum安装pkg,但是可以接受这样的想法,即Fedora有一个替代的默认lib instead.No?

编辑过的

我试着编译这个:

代码语言:javascript
复制
#include <stdio.h>
#include <stdlib.h>

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

输出如下:

代码语言:javascript
复制
$ 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

代码语言:javascript
复制
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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-06 22:18:00

这里有几件事..。

  1. 在你的小例子中你不使用任何数学函数,所以你真的不需要libm
  2. 如果确实需要libm,则不需要静态libm.a。您可以链接到动态文件,并且可以使用gcc -lm进行链接,而不是直接给出文件名。
  3. 如果您确实出于某种原因需要libm.a,您可以在glibc-static包中找到它--但出于许多原因,不建议这样做。
  4. 正如错误消息所述,真正错误的是您缺少了一个main()函数。尝试将以下内容添加到文件的底部: int main (int argc,char **argv) { fred(1);fred(2);fred(42);}

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41002773

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档