安卓ndk 忽略 error: undefined reference to '找不到符号

时间:2023-03-08 20:07:39
安卓ndk 忽略 error: undefined reference to '找不到符号

最近在搞天使之翼的mrp模拟器。。。

移到AndroidStudio了,现在想把原来的Android安卓ndk 忽略 error: undefined reference to '找不到符号

.mk那种方式的改成cmake的方式编译,但是编译时有一些符号找不到。

undefined reference,这些其实是在一个叫mr_gc的文件里的,但是没有这个文件。所以决定直接忽略找不到的符号,但是搜到的是Android.mk的

最后在这个blog发现了

https://blog.csdn.net/suningning/article/details/74509894

通过设置这个参数

ANDROID_ALLOW_UNDEFINED_SYMBOLS

这是在build.gradle里设置的,如图

安卓ndk 忽略 error: undefined reference to '找不到符号

附上build.gradle

apply plugin: 'com.android.library'

android {
compileSdkVersion 27
buildToolsVersion "27.0.1" defaultConfig {
minSdkVersion 17
targetSdkVersion 17 ndk{
abiFilters "armeabi" }
externalNativeBuild {
cmake {
cppFlags ""
arguments "-DANDROID_ALLOW_UNDEFINED_SYMBOLS=TRUE"
}
}
} buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
debug {
jniDebuggable true }
sourceSets {
main {
jniLibs.srcDir 'src/main/libs'
jni.srcDirs = []
}
} } externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
} dependencies {
compile 'com.android.support:support-v4:23.+'
}