草庐IT

c++ - 为什么它不需要链接库?

#include#includeintmain(){printf("%f",roundf(3.14));}我编译上面的代码(没有使用-lm),添加使用ldda.out,结果是linux-vdso.so.1=>(0x00007fffab9ff000)libc.so.6=>/lib/x86_64-linux-gnu/libc.so.6(0x00007fd6da0f8000)/lib64/ld-linux-x86-64.so.2(0x00007fd6da4eb000)为什么a.out没有链接到libm但可以使用roundf(或类似sqrt的东西)?我已经使用nm来测试libc.so.6和ld

c++ - 错误 C3861 : 'roundf' : identifier not found

我通常很擅长用谷歌搜索这样的东西,但这次我似乎找不到任何东西。我从here下载了一些源代码它使用一个名为roundf的函数.我已经有了#include并作为第一个想法添加了#include但仍然有问题。我似乎无法找出函数的来源...有替代功能吗?或者有人知道它的来源以便我可以包含头文件吗? 最佳答案 roundf()函数由C99定义,但MSVC对C99的实现很少,因此它不适用于Microsoft编译器。你可以使用这个:floatroundf(floatx){returnx>=0.0f?floorf(x+0.5f):ceilf(x-0