gpt4 book ai didi

c - 哪些链接器选项包含 gcc

转载 作者:太空宇宙 更新时间:2023-11-03 23:32:58 24 4
gpt4 key购买 nike

我编译了一个项目并在我的系统上运行它,它运行得非常好。

我将其上传到 git 并要求我的管理员在服务器上运行它,它显示 undefined reference to 'clock_gettime'。可以通过使用 -lrt 选项链接库来解决此错误。我之前也遇到过类似的问题,但这与在 -lm 选项的帮助下链接 math.h 库有关。

有没有办法找到要链接的所有库,这样您就不会遇到此类问题,也不会在管理员面前感到尴尬。如何决定要链接的所有库。是否可以对此进行思考?

最佳答案

一些 man页面将提及应使用的 header 和库。 (不幸的是,并非所有页面都是如此。)

例如,查看man 3 signal .在我的系统上,该页面有一个 LIBRARY顶部的部分带有 Standard C Library (libc, -lc) , 其次是 SYNOPSIS带有 #include <signal.h> 的部分.

其他一些策略包括:

  • 直接使用 strings通过管道传输到 egrep在 shell 循环中,在已安装的库中搜索对名称的引用。对于常用名称,这可能会返回很多误报,但它对于与单个英文单词不匹配的复杂函数名称非常有效。

  • 迭代编译和链接。如果您正在尝试解析单个函数,请编写一个调用该函数的小程序,并使用 shell 或 makefile 循环来测试系统上的每个单个库(从 /usr/lib 或其他任何地方的最有可能的候选人的小列表开始).在某个时候构建会成功并向您显示正确的库。此方法需要一些工作来设置,但您创建的基础架构也很容易在将来重用。

  • 使用链接器工具反复检查二进制文件(例如 Mac OS X 上的 otool,或 Solaris 或 Linux 上的 objdumpreadelf)。例如,尝试从特定名称(在 Mac OS X 上为 otool -v -t -p _symbol)开始反汇编库的文本部分。

关于c - 哪些链接器选项包含 gcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11237169/

24 4 0
文章推荐: css - 自定义字体未应用于 CSS
文章推荐: c - 高级 Sublime Text 2 构建系统
文章推荐: c - Graham 的 3d 扫描,查找一般多边形的面积
文章推荐: html - 并排