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

  • Post author:
  • Post category:其他


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

移到AndroidStudio了,现在想把原来的Android

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

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

最后在这个blog发现了

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

通过设置这个参数

ANDROID_ALLOW_UNDEFINED_SYMBOLS

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

附上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.+'
}

转载于:https://www.cnblogs.com/formatfa/p/8830432.html