1. 程式人生 > >安卓ndk 忽略 error: undefined reference to '找不到符號

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

armeabi 找不到 main cmak eset nat reference dto 原來

最近在搞天使之翼的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.+‘
}

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