编译NDK项目的时候,当用到sinf的时候,编译报错:
选中sinf函数,右键Go to declaration, 发现math.h的文件路径是:
c:ProgramDataMicrosoftAndroidNDK64android-ndk-r13bplatformsandroid-21arch-arm64usrincludemath.h
试了很多种方法,包括在library dependencies中加入libm,libc,还是不能解决,后来找到了这篇文章:
http://www.linuxidc.com/Linux/2010-12/30317.htm
Linux下Eclipse编译带有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。
再编译,就没有错误了。