【问题标题】:Link math library with binfmtc将数学库与 binfmtc 链接
【发布时间】:2016-02-24 16:25:31
【问题描述】:

我使用binfmtc 来允许我在不执行显式构建步骤的情况下运行C 程序。这一直很好,直到我开始使用数学函数,此时我看到如下消息:

对“罪”的未定义引用

我使用的标题是:

/*BINFMTC: -Wall -Werror -std=c99 -lm
*/

我怎样才能让这个程序链接?

密切相关:"undefined reference to `pow'" even with math.h and the library link -lm

【问题讨论】:

  • 如果你尝试用 gcc 编译它,它会编译吗?数学库可以访问吗?
  • @LPs:是的。我可以手动使用 gcc 进行编译——这让我可以将 '-lz' 放在完整 gcc 命令行的末尾,binfmtc 显然没有。
  • binfmtc 是否尊重 CFLAGSCXXFLAGSLDFLAGS?。如果有,可以设置LDFLAGS="-lm -lz"
  • @alvits:好主意,但设置LDFLAGS 没有效果。
  • 注意:这个问题是 'C' 独有的——它不会在 C++ 模式下发生:BINFMTCXX

标签: c gcc


【解决方案1】:

这并不优雅,但很有效:

为库创建一个包装脚本gcclm.sh

#! /usr/bin/env bash
gcc $@ -lm

使用包装器调用 C 程序:

GCC=$(pwd)/gcclm.sh ./myprogram.c

【讨论】:

    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多