首页
社区
课程
招聘
[分享]Android NDK编译错误:undefined reference to 'test()'
发表于: 2014-3-8 23:59 17794

[分享]Android NDK编译错误:undefined reference to 'test()'

2014-3-8 23:59
17794
编译一个android ndk项目遇到了下面的错误:
error: undefined reference to 'test()'


我的代码是这样的,在A.cxx中调用B.cpp中的test()函数,这两个文件都在Android.mk文件的LOCAL_SRC_FILES中添加了:
LOCAL_SRC_FILES := A.cpp
LOCAL_SRC_FILES += B.cxx


并且设置了:LOCAL_CPP_EXTENSION += .cxx

但是一直编译不通过,提示上面的test()未定义,经过查找发现编译的时候有一个警告:
Android NDK: WARNING: Unsupported source file extensions in jni/Android.mk for module hello-jni

意思是不支持源文件扩展名。
可是我已经设置变量添加了cxx的扩展名的支持了,为什么还出现这种情况?

最后我把LOCAL_CPP_EXTENSION += .cxx从Android.mk中剪切到Application.mk文件中,清理项目,重新编译,编译通过!


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 18
活跃值: (430)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
2
NDK 有些错误就是莫名其妙
2014-3-9 16:59
0
雪    币: 25
活跃值: (57)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
android.mk
add jni/xxx.c
2014-3-9 22:37
0
雪    币: 216
活跃值: (65)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
想问一下,这2个.MK在功能上有什么分别 ?
2014-3-10 10:18
0
雪    币: 53
活跃值: (280)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
看看NDK自带的documentation.html 就明白了
自带的文档已经很简明了,看了会豁然开朗,千万不要看网上那些老掉牙的NDK介绍教程

在Android.mk中这样定义
LOCAL_CPP_EXTENSION := .cxx .cpp .cc
ndk-r9中测试没有问题,能看到是用xxx-g++编译,如果是.c会看到用xxx-gcc编译

LOCAL_CPP_EXTENSION

This is an optional variable that can be defined to indicate the file extension(s) of C++ source files. They must begin with a dot. The default is '.cpp' but you can change it. For example:

          LOCAL_CPP_EXTENSION := .cxx
Since NDK r7, you can list several extensions in this variable, as in:

          LOCAL_CPP_EXTENSION := .cxx .cpp .cc
2014-3-14 16:22
0
游客
登录 | 注册 方可回帖
返回
//