gpt4 book ai didi

更改源后编译 GNU libm 的 s_sin.c

转载 作者:行者123 更新时间:2023-11-30 21:19:24 31 4
gpt4 key购买 nike

我想稍微修改 libm 的 sin 函数(来源:s_sin.c)来尝试一些数值。但是,我不知道如何编译修改后的源代码。

我想避免执行“./configure, make”。因此,为了解决所有依赖关系,我尝试在系统中使用 libm.a 编译 s_sin.c。但我的编译器很快拒绝编译,因为它在源文件中找不到头文件“mydefs.h”。源码中有很多这样的头文件。

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

最佳答案

I would like to avoid doing "./configure, make".

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

My question is: what is the easiest way for experimenting with changing a single math function in GNU libm and the compiling it?

我会推荐一个小的chroot(2) -ed 环境。 Debian 有 schrootdebootstrap使这变得相当容易。

然后您仍然执行 ./configure - 可能使用不同的 --prefix ...- 后跟 make。您可能需要也可能不需要 make install

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

共存

顺便说一句,sin 是一个不寻常的函数(就像 -lm 中的许多函数一样)。您可以在那里设置一个断点来检查大多数系统程序是否不使用它。不要忘记备份系统的 libc 并运行一些静态 shell,以防万一(可能是 sash,因为许多核心实用程序都是内置的:静态 sash 包含 tarcpmv 等的内部变体。 .不依赖于任何外部 libc)

您还可以在某些 header (例如 /usr/include/math.h)中添加(临时)一些 #define sin(x) mysin(x) 或使用LD_PRELOAD tricks .

(目前还不清楚你真正想要做什么。libm.so仅由程序使用,本身不使用;你想要做什么实际的数值实验??)。

关于更改源后编译 GNU libm 的 s_sin.c,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50898283/

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