Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的申请赢了';Android上使用OpenSSL的t链接_Android_C++_Android Ndk_Openssl - Fatal编程技术网

我的申请赢了';Android上使用OpenSSL的t链接

我的申请赢了';Android上使用OpenSSL的t链接,android,c++,android-ndk,openssl,Android,C++,Android Ndk,Openssl,我正在我的Android项目中使用OpenSSL 这是我的设置: 安卓工作室3.2 NDK版本:18.0.5002713 这是我的应用程序的build.gradle文件: apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' def my_openssl_dir = getRootDir().toString() + "/b

我正在我的Android项目中使用OpenSSL

这是我的设置: 安卓工作室3.2 NDK版本:18.0.5002713

这是我的应用程序的
build.gradle
文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

def my_openssl_dir = getRootDir().toString() + "/build-openssl-android/openssl-lib"

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.my-company.my-app"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++17 -frtti -fexceptions"
                arguments '-DANDROID_STL=c++_shared'
                arguments '-DMY_OPENSSL_DIR=' + my_openssl_dir
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }

    sourceSets {
        main {
            jniLibs.srcDirs = [
            ]
        }

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'org.jetbrains.kotlin:kotlin-reflect:1.2.30'
}
cmake_minimum_required(VERSION 3.4.1)
include_directories( src/main/cpp/
                   )

add_library( # Sets the name of the library.
             my-library

             SHARED

             src/main/cpp/my-code.cpp
             )

find_library (log-lib log)

add_library(libcrypto STATIC IMPORTED)
set_target_properties(libcrypto PROPERTIES IMPORTED_LOCATION
${MY_OPENSSL_DIR}/${ANDROID_ABI}/libcrypto.a)

add_library(libssl STATIC IMPORTED)
set_target_properties(libssl PROPERTIES IMPORTED_LOCATION
${MY_OPENSSL_DIR}/${ANDROID_ABI}/libssl.a)

target_include_directories(nativ PRIVATE
                       ${MY_OPENSSL_DIR}/${ANDROID_ABI}/include
                       )

target_link_libraries( # Specifies the target library.
                       my-library
                       libcrypto
                       libssl
                       ${log-lib}
                       )
这是我的
CMakeLists.txt
文件:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

def my_openssl_dir = getRootDir().toString() + "/build-openssl-android/openssl-lib"

android {
    compileSdkVersion 27
    defaultConfig {
        applicationId "com.my-company.my-app"
        minSdkVersion 21
        targetSdkVersion 27
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags "-std=c++17 -frtti -fexceptions"
                arguments '-DANDROID_STL=c++_shared'
                arguments '-DMY_OPENSSL_DIR=' + my_openssl_dir
            }
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    externalNativeBuild {
        cmake {
            path "CMakeLists.txt"
        }
    }

    sourceSets {
        main {
            jniLibs.srcDirs = [
            ]
        }

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'org.jetbrains.kotlin:kotlin-reflect:1.2.30'
}
cmake_minimum_required(VERSION 3.4.1)
include_directories( src/main/cpp/
                   )

add_library( # Sets the name of the library.
             my-library

             SHARED

             src/main/cpp/my-code.cpp
             )

find_library (log-lib log)

add_library(libcrypto STATIC IMPORTED)
set_target_properties(libcrypto PROPERTIES IMPORTED_LOCATION
${MY_OPENSSL_DIR}/${ANDROID_ABI}/libcrypto.a)

add_library(libssl STATIC IMPORTED)
set_target_properties(libssl PROPERTIES IMPORTED_LOCATION
${MY_OPENSSL_DIR}/${ANDROID_ABI}/libssl.a)

target_include_directories(nativ PRIVATE
                       ${MY_OPENSSL_DIR}/${ANDROID_ABI}/include
                       )

target_link_libraries( # Specifies the target library.
                       my-library
                       libcrypto
                       libssl
                       ${log-lib}
                       )
我在编译时遇到以下错误:

生成命令失败。执行进程时出错 /home/david/Android/Sdk/cmake/3.6.4111459/bin/cmake带参数 {--构建 /home/david/dev/android/MyApplication/app/.externalNativeBuild/cmake/debug/x86_64 --目标my library}[1/1]链接CXX共享库../../../../../../build/mediates/cmake/debug/obj/x86_64/libnativ.so 失败::&& /home/david/Android/Sdk/ndk bundle/toolschains/llvm/prebuild/linux-x86_64/bin/clang++ --target=x86_64-none-linux-android21--gcc toolschain=/home/david/Android/Sdk/ndk bundle/toolschains/x86_64-4.9/prebuild/linux-x86_64 --sysroot=/home/david/Android/Sdk/ndk bundle/sysroot-fPIC-isystem/home/david/Android/Sdk/ndk bundle/sysroot/usr/include/x86_64-linux-Android -g-DANDROID-fffunction sections-funwind tables-fstack protector strong-no规范前缀-Wa,--noexecstack-Wformat-Werror=format security-std=c++11-std=c++17-frti-feexceptions-O0-fno limit debug info-Wl,--exclude libs,libgcc.a-Wl,--exclude libs,libatomic.a-nostlib++--sysroot/home/david/Android/Sdk/ndk bundle/platforms/Android-21/arch-x8664 -Wl,-build id-Wl,-warn shared textrel-Wl,-致命警告-L/home/david/Android/Sdk/ndk bundle/sources/cxx stl/llvm libc++/libs/x8664 -Wl,--没有未定义的-Wl,-z,noexecstack-Qunused参数-Wl,-z,relro-Wl,-z,现在-shared-Wl,-soname,libnativ.so-o../../../../../build/mediates/cmake/debug/obj/x86_64/libnativ.so CMakeFiles/my library.dir/src/main/cpp/my code.cpp.o /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_64/libcrypto.a /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_64/libssl.a /home/david/Android/Sdk/ndk bundle/platforms/Android-21/arch-x86_64/usr/lib64/liblog.so -latomic-lm“/home/david/Android/Sdk/ndk bundle/sources/cxx stl/llvm libc++/libs/x86_64/libc++_shared.so” && : /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 是否加载内置压缩:错误:未定义对的引用 “COMP_get_type” /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 是否加载内置压缩:错误:未定义对的引用 “公司名称” /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 ssl\u密码\u获取\u evp:错误:未定义对“FIPS\u模式”的引用 /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 ssl\u cipher\u get\u evp:错误:未定义对“evp\u enc\u null”的引用 /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 ssl\u创建\u密码\u列表:错误:未定义对“FIPS\u模式”的引用 /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 ssl\u创建\u密码\u列表:错误:未定义对“FIPS\u模式”的引用 /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 SSL_COMP_add_compression_方法:错误:未定义对的引用 “COMP_get_type” /home/david/dev/android/MyApplication/build openssl android/openssl lib/x86_64/libssl.a(ssl_ciph.o):ssl_ciph.c:函数 SSL_COMP_get_name:错误:未定义对“COMP_get_name”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-conf.o):ssl_-conf.c:函数 cmd_VerifyCAFile:错误:未定义对的引用 “X509\存储\加载\位置” /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-conf.o):ssl_-conf.c:函数 cmd_ChainCAPath:错误:未定义对的引用 “X509\存储\加载\位置” /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-conf.o):ssl_-conf.c:函数 cmd_ChainCAFile:错误:未定义对的引用 “X509\存储\加载\位置” /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-conf.o):ssl_-conf.c:函数 cmd_VerifyCAPath:错误:未定义对的引用 “X509\存储\加载\位置” /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL\u读取:错误:未定义对“ASYNC\u WAIT\u CTX\u new”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL_peek:错误:未定义对“ASYNC_WAIT_CTX_new”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL\u写入:错误:未定义对“ASYNC\u WAIT\u CTX\u new”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL\u关机:错误:未定义对“ASYNC\u WAIT\u CTX\u new”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL_CTX_新建:错误:未定义对“FIPS_模式”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 ssl_clear_cipher_ctx:错误:未定义对“COMP_ctx_free”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 ssl_clear_cipher_ctx:错误:未定义对“COMP_ctx_free”的引用 /home/david/dev/android/MyApplication/build openssl-android/openssl-lib/x86_-64/libssl.a(ssl_-lib.o):ssl_-lib.c:函数 SSL