编译NDK项目的时候,当用到sinf的时候,编译报错:

选中sinf函数,右键Go to declaration, 发现math.h的文件路径是:

c:\ProgramData\Microsoft\AndroidNDK64\android-ndk-r13b\platforms\android-21\arch-arm64\usr\include\math.h

试了很多种方法,包括在library dependencies中加入libm,libc,还是不能解决,后来找到了这篇文章:

http://www.linuxidc.com/Linux/2010-12/30317.htm

LinuxEclipse编译带有math.h库的项目

[日期:2010-12-05]

来源:Linux社区  作者:huangyif

[字体:  ]

Linux ,如果程序包含 math.h ,在gcc时必须加入 lm 例如:gcc -o main.o main.c -lm
但是在eclipse下面 编译,项目回自动生成makefile ,无论如何手动修改makefile,在编译的时候也会被eclipse修改成原来的样子。
这个lm的设置方法如下:  【LINUX公社 
www.LinuxIDC.com 】

选择"project">
"propertise">
"C/C++ Build">
C/C++ Build
的下拉菜单"Settings"选项>
Settings
"Tool Settings"选项卡>
Tool Settings
选项卡下的"GCC CLlinker"选项>
GCC C Linker
选项下的"Libraries"选项

这时,只需要在"Libraries-l"里面添加一个"m",这时eclipse就会在它自动生存的makefile里面生成gcc-lm参数,这时make项目的时候 math.h库里面的数学函数就不回提示找不到了。

 

然后在 LibraryDependencies中加入m。

再编译,就没有错误了。

posted on 2017-08-27 18:11  今夜太冷  阅读(1366)  评论(0编辑  收藏  举报