代码之家  ›  专栏  ›  技术社区  ›  zell

更改源代码后编译gnu-libm的s_sin.c

  •  -4
  • zell  · 技术社区  · 6 年前

    我想稍微修改一下libm的 sin 功能(来源: s_sin.c )做一些数值实验。但是,我不知道如何编译修改后的源代码。

    我想避免做“../configure,make”。所以,为了解决所有依赖项,我尝试在我的系统中用libm.a编译su s in.c。但是我的编译器很快拒绝了编译,因为它在源文件中找不到头文件“mydefs.h”。在源中有许多这样的头文件。

    我的问题是:在gnu libm中尝试改变一个数学函数并编译它最简单的方法是什么?谢谢。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Basile Starynkevitch    6 年前

    我想避免做“../configure,make”。

    您无法避免(因为这是通常的构建过程),但可以将更多参数传递给 configure . 尝试 configure --help 第一。你可以避开下一个 make install (或通过一些 DESTDIR=/tmp/somedir/ 对它)。

    我的问题是:在gnu libm中尝试改变一个数学函数并编译它最简单的方法是什么?

    我推荐一个小的 chroot(2) -ED环境。Debian有 schroot debootstrap 使之相当容易。

    那你还是 ./configure -也许是另一种 --prefix …-接 make . 你想不想 制作安装

    也许可以考虑玩 musl-libc ,因为它可以与系统的 libc

    顺便说一句, sin 是一个不寻常的功能 -lm )您可以在那里设置一个断点,以检查大多数系统程序是否不使用它。别忘了备份系统的 利比克 吃点吧 静止的 为了以防万一(也许 sash ,因为许多核心实用程序都是内置的:静态 窗框 包含 内部的 变异体 tar , cp , mv 等。。。不依赖任何外部因素 利比克 )

    你也可以(暂时)添加一些 #define sin(x) mysin(x) 在某个标题中(例如 /usr/include/math.h 或使用 LD_PRELOAD tricks .

    (不清楚你 真的? 想做。 libm.so 只被程序使用,而不是自己使用;你想做什么实际的数值实验??)