我找不到以下的实例:
我创建了由以下代码组成的共享库:
foo.c的: #include
#include "foo.h"
void foo(void)
{
printf("Hello, I'm a shared library\n");
}
和foo.h是界面:
#ifndef __FOO_H__
#define __FOO_H__
void foo(void);
#endif
“foo”代码位于子目录foo
下使用编译(为了简单起见,我将删除详细的make选项):
#CROSS_COMPILE is:
#/usr/local/toolchain/arm-2010q1/bin/arm-none-linux-gnueabi-
CC := $(CROSS_COMPILE)gcc
$(CC) -fPIC -c foo.c -o foo.o
$(CC) -shared -o libfoo.so foo.o
构建它时 - libfoo.so成功创建。
main.c文件:
#include <stdio.h>
#include "foo.h"
int main(void)
{
printf("Hello World\n");
foo();
return 0;
}
使用以下方式构建应用程序:
$(CC) -c main.c -o main.o
$(CC) main.o -Lfoo -lfoo -o test
到目前为止 - 所有的确定我得到了可执行文件并将其推送到/ data / local / tmp /.
现在,我尝试了以下所有内容但没有成功(得到错误:测试:没有这样的文件或目录)
有人有建议吗?
答案 0 :(得分:0)
经过深入挖掘后,我发现更好的方法是使用NDK而不是标准的Makefile来实现此目的。
可以在http://web.guohuiwang.com/technical-notes/androidndk1找到帮助我实现目标的综合教程。
祝你好运