我使用了这个modf(),但是编译器说“未定义modf的引用”。我已经在项目中包含了math.h文件。
我将math. h的路径包含在项目属性-〉常规:[附加包含目录]中,其位置为“C:\ProgramData\Microsoft\AndroidNDK\android-ndk-r10e\platforms\android-19\arch-arm\usr\include”。
我还添加了链接器属性Linker-〉Input:[Additional Dependencies],即“libm.so“,并在Linker-〉General:[Additional Library Directories]中为“C:\ProgramData\Microsoft\AndroidNDK\android-ndk-r10e\platforms\android-19\arch-arm\usr\lib”放置了指向“libm.so”的路径
下面是调用modf()的代码。
#include <math.h>
#include "MyMath.h"
double MyMath::testMod(double a, double b)
{
return modf(a, &b);
}
我还错过了什么?谢谢。
- ------------更新信息-----------
我是Visual Studio 2015的新手,所以这一定是VS中的新功能,因为错误列表窗口会在错误之间切换。如果我单击某个源文件,然后重新生成项目,错误将根据所选源文件显示不同。
因此,前面的情况,上述错误与math.h文件,它是我的项目拉math.h文件在两次.它拉从这些位置:
C:\程序数据\微软\安卓NDK\安卓ndk-r10 e\平台\安卓-19\拱臂\usr\包含
和
C:\程序数据\微软\安卓NDK\安卓ndk-r10 e\平台\安卓19\arch-x86\用户名\包含
请注意,arch文件夹是不同的,因为它们是“arch_arm”和“arch-x86”。现在我不知道为什么会这样。我只是想用NDK构建这个项目,以便在Android设备上使用,所以我想用arm构建。
2条答案
按热度按时间trnvg8h31#
您可以尝试cmath头文件而不是math.h
有关详细信息,请参阅
C++ - cmath vs math.h (And similar c-prefixed vs .h extension headers)
vlju58qv2#
您尝试过包含
cmath
吗?此指涉指出modf
位于cmath.h
中:cmath at cppreference.com。此外,是否尝试过在
std::modf
中使用std
作为前缀?