我正在将纯c项目移植到android 5.1.1 API 22.原始项目有Android.mk,工作正常。我跟着the guild到端口,但新创建的项目无法正确链接库libelf。我创建了一个新模块,尝试使用gradle链接libelf。这是gradle文件:
apply plugin: 'com.android.library'
android {
compileSdkVersion 24
buildToolsVersion "24.0.3"
defaultConfig {
minSdkVersion 22
targetSdkVersion 22
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
ndkBuild {
path '../MyProject/Android.mk'
}
}
} // android
// The dependencies block is a part of the standard Gradle configuration (that is why it is placed outside of the android block)
// and defines all dependencies for an app or library. By default, a new Android app has a dependency on all the JAR files in
// the libs directory. Depending on the options you select in the new project wizard,
// it might also depend on the AppCompat library.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
在AOSP中,我可以看到头文件位于:external/elfutils/0.153/libelf
任何人都知道在gradle中添加库libelf依赖的正确方法吗?
以下是我遇到的错误:
Error:(43) undefined reference to `elf_version'
Error:(54) undefined reference to `elf_begin'
Error:(60) undefined reference to `elf_kind'
Error:(64) undefined reference to `elf_getshdrstrndx'
Error:(65) undefined reference to `elf_errno'
Error:(65) undefined reference to `elf_errmsg'
Error:(56) undefined reference to `elf_errno'
Error:(56) undefined reference to `elf_errmsg'
Error:(117) undefined reference to `elf_end'
Error:(71) undefined reference to `elf_nextscn'
Error:(83) undefined reference to `elf64_getshdr'
Error:(90) undefined reference to `elf_strptr'
Error:(97) undefined reference to `elf_getdata'
Error:(85) undefined reference to `elf_errno'
Error:(85) undefined reference to `elf_errmsg'
Error:(92) undefined reference to `elf_errno'
Error:(92) undefined reference to `elf_errmsg'
Error:(99) undefined reference to `elf_errno'
Error:(99) undefined reference to `elf_errmsg'
Error:error: linker command failed with exit code 1 (use -v to see invocation)
构建环境:
系统:Ubuntu 16.04:LTS
Android Studio版本:2.2.2
Android插件版本:2.2.2
Gradle版本:2.14.1
目标Android信息:
Android版:5.1.1
API级别:22
感谢您的帮助,