问题标签 [libm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - Libm 没有三角函数
由于缺少 fp 操作单元,特定嵌入式系统上的 libmath 没有类似的功能sin
。cos
是否有一些通过查找表提供功能的库?我实际上并不需要 100% 可靠的值。
android-ndk - 如何将 complex.h 用于 Android NDK?
我有用 C 编写的本机源代码,我想在我的 Android 设备(Nexus 7)上运行。我已经成功地做了大量关于使用 Android NDK 在 Android 上运行本机代码的研究和在线教程。在这方面我获得了相当多的知识。但是,我的代码使用了 complex.h 中定义的标准数学库的复杂功能。然而,NDK C 库似乎不支持复杂的功能。每当我对项目进行 ndk-build 时,我都会得到:
作为解决方案,我想从 arm-linux-gnueabi 获取标准数学库 (libm.a) 并将其与我的本地源链接。这是我的 Android.mk:
我必须链接 arm-linux-gnueabi-gcc 的 libc 以及 libm 需要它。“ComplexOperations”模块是使用带有编译器标志 -march=armv7-a 的 arm-linux-gnueabi-gcc 静态编译的。这个库使用了 complex.h。这构建没有任何错误和警告。但是当我运行应用程序并调用
我在 logcat 上收到此错误:
如果出现此错误,则会引发 UnsatisfiedLinkError 异常,如果不处理该异常会导致应用程序崩溃。
有人可以帮帮我吗!我已经尝试自己解决这个问题好几天了!!:(
android - 如何使用 Bionic C 库中不支持的标准 C 库来构建 Android-NDK?
我的原生资源使用了复杂的操作(定义)。这些操作在标准 C99 数学库中实现,但不在 Android-NDK 使用的仿生数学库中实现。出于这个原因,我想使用标准数学库而不是仿生数学库来编译我的源代码。
我的可能性是什么?
c++ - 为什么它不需要链接 libm?
我编译上面的代码(没有使用-lm),添加use ldd a.out,结果是
为什么 a.out 没有与libm链接但可以使用 roundf(或类似 sqrt 的东西)?我使用 nm 来测试 libc.so.6 和 ld-linux-x86064.so.2 但所有这些都没有 roundf 的符号。
我想知道在哪里定义了roundf,或者它已经被编译器内联了?(使用 gcc 4.7.3 和 gcc 4.6.3 进行测试)
答案是http://fedoraproject.org/w/index.php?title=UnderstandingDSOLinkChange
gcc - Centos gcc 不兼容 libm.so 和 libc.so
试图让一个 c++ 程序在 Centos 6.3 上编译。遇到以下错误消息:
使用命令时:
它整天都在工作。
该系统有 /lib/libc.so.6 和一些帖子让我相信部分解决方案可能是一个符号链接。gcc 版本是 4.4.7。ldconfig -v 没有显示 libc.so 只是 libc.so.6。我试图将 /usr/lib/libc.so 和 libm.so 移动到 _old。之后刚刚创建了以下两个链接:
没有解决它。我从编译器收到了相同的两条消息。
c - 为什么数学函数没有静态库?
只有动态库大部分没有静态版本是标准吗?我特别询问数学库。在我的 fedora 17(Intel 32 处理器上的 Linux 机器)中,我有最新的 gcc,它有 libm-2.15.so 和符号链接文件 libm.so,但没有 libm.a。
我的系统上是否缺少 libm.a?
floating-point - glibc 与 fesetflushtozero() 的等价物是什么?
HP-UX 的 libc 具有fesetflushtozero
在“逐渐下溢”和“清零”之间切换浮点行为的功能。如何在运行 glibc 的系统上实现相同的功能?
c - 什么是libc?它包括哪些功能?我们怎样才能得到它的源代码呢?
根据 Wikipedia,有许多基于操作系统和编译器的标准 C 库变体。参考:http ://en.wikipedia.org/wiki/C_standard_library
但我想了解在单个库中定义了多少在不同头文件中声明的函数(例如:stdio.h、string.h、stdlib.h 等)。所有这些头文件的源代码文件是否相同,或者 stdio.h、string.h 等有不同的库?由于我是编程初学者,我不知道多个源代码文件是否可以生成像可执行文件这样的单个库。如果可能的话,我可以理解 libc 包含所有标准头文件的定义。在哪里可以看到标准 C 库的源代码?
是静态库还是动态库?如果两个版本都存在于我的环境(OS/IDE)中,当我在源代码中包含任何标准头文件时,哪个版本会被链接。它依赖于IDE吗?但在 gcc 的情况下,程序员不会明确包含 libc。
libc 是标准 C 库的标准名称吗?
在 Windows 操作系统/环境中它是否已经存在?如果存在,它的名称是什么(仅 libc)?
有没有像 libm 这样的其他标准 C 库?
c - 包含 math.h 和链接 libm 时的 C sinhl 未定义引用
希望有人以前见过这个并且可以提供一些见解。
我包括 math.h 和链接 libm,在 FreeBSD 9.2 x86_64 上使用 gcc 4.2.1。
sinl、cosl、tanl 之类的函数可以工作,但是一旦我调用 sinhl 之类的函数,我就会收到有关内置的隐式声明和未定义引用的错误的警告。
相关标题部分:
生成文件的东西:
编译尝试导致:
我检查了 math.h 并且 sinl 和 sinhl 都以相同的方式列出。只是为了笑,我尝试链接到 32 位版本的 libm,这让我无处可去。
有趣的是,如果我查看 /usr/include/libm.a 中的符号,我会看到有关 sinl 的内容,但没有看到有关 sinhl 的内容。我是否需要链接其他库才能使用双曲三角函数?
在过去的 24 小时里,我一直在不停地研究这个问题,但没有看到任何明显的东西。我在很多其他函数上也遇到了同样的问题:coshl、tanhl、logl、log2l、log10l、expl。
有什么想法来自全新的眼光吗?
先感谢您。-T
gcc - 来自 libm 的函数 sinf 不会在 ARM QEMU 机器上返回
我正在尝试在使用 QEMU 模拟的 ARM 机器上运行以下代码。
使用的工具链:
代码编译为:
QEMU 机器启动为:
GDB 会话如下所示:
断点 2 设置在最后一行(返回 0)。从 GDB 会话日志中可以看出,永远不会到达第二个断点。计算只是停留在 sinf 函数中。知道为什么吗?
我正在试验直接用 ARM 汇编编写的类似代码,结果是一样的。