编译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://w…
在实际工作中有些程序不可避免的需要使用数学函数进行计算,比如地图程序的地理坐标到地图坐标的变换.Objective-C做为ANSI C的扩展,使用C标准库头文件<math.h>中定义的数学常量宏及数学函数来实现基本的数学计算操作,所以不必费神再在Cocoa Foundation中寻找相应的函数和类了.这里列出一些常用宏和数学函数,更详细的信息还是需要去查阅<math.h>头文件. 数学常量:#define M_E         2.718281828459045235360287…
早些时间用ndk编译带main入口函数的动态库,测试可运行.今天要作它用时,发现在这个入口函数并没有传入正确的参数. hello.cpp有main函数,用ndk分别编译成可执行文件和动态库文件,使两者都可以在android手机下运行. 左侧是由编译出的可执行文件objdump出来的反汇编, 右侧是远程调试带main入口函数的动态库文件,反汇编main函数,以及可以看到栈帧的参数是错乱的. 问题悬挂作下记录,待有时间再看.…
对于C Standard Library 可以参考:http://www.acm.uiuc.edu/webmonkeys/book/c_guide/ 或者 http://www.cplusplus.com/reference/ (一) <math.h> 常用函数: 1. 三角函数 double sin(double);正弦 double cos(double);余弦 double tan(double);正切 2 .反三角函数 double asin (double); 结果介于[-PI/2,…
以前都是在VC或者VS中编写c语言程序,今天尝试在Ubuntu下试着编写了一个简单的画正弦函数的程序,用到了头文件math.h,但是编译的时候报错了: 经查资料后才知道,数学函数位于libm.so库文件中(通常在/lib目录下),-lm选项提示编译器,我们程序中用到的数学函数要到这个库文件里查找. 果然,指定连接库后,可以编译成功了,那为什么有些库要单独指定呢?而如:stdio.h却不用?答案是,因为这些库不是基础库,如果第三方库函数与基础库有重名会怎么办?用-l 明确的指定链接哪个库可以避免这…
1.创建工程目录  在ubuntu系统下搭建好ndk编译环境,创建test目录 mkdir test 在test目录下创建jni目录 cd test mkdir jni 2.编写源代码 vim hello-exe.c #include<stdio.h> int main(){ printf("hello\n"); return 0; } 3.创建android makefile文件 创建Android.mk和Application.mk文件,在jni目录下 Android.…
在gcc下用到数学函数,如sqrt.在gcc时要加上 -lm 参数,这样告诉编译器我要用到数学函数了 . 如:gcc a.c -o a -lm 当在用Eclipse编译使用数学函数的C语言程序时,如sqrt,pow,即使已经加入math.h,也会提示类似于undefined reference to `sqrt'这样的错误.搜索得知需要给gcc加上-lm参数.添加参数方法: 右键点击当前 project 选中 properties菜单->C/C++ build -> Settings ->…
我们知道在Ubuntu下直接编译FFmpeg是很简单的,主要是先执行./configure,接着执行make命令来编译,完了紧接着执行make install执行安装.那么如何使用Android的NDK编译出来可以在Android下面可以使用的FFmpeg动态链接库呢?写下这篇文章就是学习如何裁剪并且编译出来可以使用的动态库. 一.获取FFmpeg源码: 首先在编译之前,得获取一份FFmpeg的源码,如果你没有git并且也不打算使用,你可以去FFmpeg官网http://ffmpeg.org/去…
作者:wainiwann 出处:http://www.cnblogs.com/wainiwann/ 本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.   摘要:本文主要介绍将FFmpeg音视频编解码库移植到Android平台上的编译和基本测试过程. 环境准备: Ubuntu12.04 TLS android-ndk-r9d-linux-x86_64.tar.bz2 ffmpeg2.2 ------------------…
以Hello Android工程为例. 建立好工程hello-a,在jni目录下创建文件hello-a.c,文件内容如下.(注意是jni目录,使用src目录编译会出错) #include <stdio.h> int main() { printf("Hello Android!\n"); return 0; } 在该目录下,创建Android.mk文件,内容如下: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCA…