Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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上创建和链接静态库 我有一个C++文件,我想把它链接到我的KTLLIN应用程序,但是我不想链接它。所以文件。我想生成一个文件并将其链接到我的项目。我想在我的项目中添加cpp文件,因为我没有静态文件。但android studio尚未生成静态文件。我犯了个错误。如果我用共享参数构建库,一切都会顺利进行 CMake Error: CMake can not determine linker language for target: delaunator-lib-static_Android_C++_Cmake_Android Ndk - Fatal编程技术网

如何在android上创建和链接静态库 我有一个C++文件,我想把它链接到我的KTLLIN应用程序,但是我不想链接它。所以文件。我想生成一个文件并将其链接到我的项目。我想在我的项目中添加cpp文件,因为我没有静态文件。但android studio尚未生成静态文件。我犯了个错误。如果我用共享参数构建库,一切都会顺利进行 CMake Error: CMake can not determine linker language for target: delaunator-lib-static

如何在android上创建和链接静态库 我有一个C++文件,我想把它链接到我的KTLLIN应用程序,但是我不想链接它。所以文件。我想生成一个文件并将其链接到我的项目。我想在我的项目中添加cpp文件,因为我没有静态文件。但android studio尚未生成静态文件。我犯了个错误。如果我用共享参数构建库,一切都会顺利进行 CMake Error: CMake can not determine linker language for target: delaunator-lib-static,android,c++,cmake,android-ndk,Android,C++,Cmake,Android Ndk,我的CmakeLists文件 cmake_minimum_required(VERSION 3.4.1) add_library( delaunator-lib SHARED delaunator-lib.cpp) add_library( delaunator-lib-static STATIC delaunator.h) find_library( log-lib

我的CmakeLists文件

cmake_minimum_required(VERSION 3.4.1)

add_library(
        delaunator-lib
        SHARED
        delaunator-lib.cpp)

add_library(
        delaunator-lib-static
        STATIC
        delaunator.h)

find_library(
        log-lib
        log)


target_link_libraries(
        delaunator-lib
        delaunator-lib-static
        ${log-lib})
当我试图从gradle externalNativeBuildDebug构建代码的本机部分时,出现了一个following错误。如果我删除第二个add_库并将delaunator.h文件添加到第一个add库中,一切都会顺利进行

  CMake Error: CMake can not determine linker language for target: delaunator-lib-static

您的静态库没有源文件(
.h
是一个头文件),因此无需编译和链接。在共享库中有
delaunator lib.cpp
源文件,为什么不将同一文件用于静态库?请注意,行
target\u link\u libraries(delaunator lib delaunator lib static)
将您的共享库链接到一个静态库。它不链接你的应用程序(而你的代码不创建任何应用程序)。实际上Delaunal-LIB CPP是JNI文件,用C++代码(DelauntA.h)进行通信,所以静态和共享部分不相同。我还没有delaunator类的头文件,但这种情况是因为错误吗?我为delaunator类生成头文件,并将其添加到cmake共享字段。我的代码生成和运行正确,但在我的项目子目录中未找到任何.a文件。这正常吗?如果是正常的,我可以添加我的答案。再说一次:一个库(无论是否共享)没有源文件是没有意义的。如果您可以省略与库的链接,并且这不会导致任何“未定义引用”错误,那么根本不需要该库。