调调通一个程序,需要使用cmakeList进项调试。

帮忙调调通一个程序,需要使用cmakeList进项调试。在Github下载了一个Libredwg的源码不会用,不知道怎么才能融入的安卓项目里面去。qq 547697912。https://github.com/LibreDWG/libredwg这个是C语言库,可以自行下载,使用android ,java NDk编译通过,正常调用发给我也可以。

编译出来的应该是这个吧

img

你只需要将这个头文件和so放到库里,然后要看下你的安卓工程里的库引用是怎么设置的

什么语言

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
要将Libredwg的C语言源代码集成到Android项目中并使用NDK进行编译和调用,你可以按照以下步骤进行操作:
1、 下载源码: 从GitHub上下载Libredwg的源码,并将其保存到本地。
2、 创建Android项目: 在Android Studio中创建一个新的Android项目,或者打开现有的Android项目。
3、 配置CMake: 在项目的根目录下,找到CMakeLists.txt文件(如果没有,则需要创建一个)。打开该文件,并添加以下内容:

# 设置CMake的最低版本要求
cmake_minimum_required(VERSION 3.10.2)

# 添加Libredwg的源码路径
add_subdirectory(/path/to/libredwg)

# 添加C代码文件
add_library(libredwg SHARED src/native_lib.c)

# 链接Libredwg库
target_link_libraries(libredwg libredwg)

请将/path/to/libredwg替换为你本地存储Libredwg源码的路径。

4、 创建JNI接口: 在项目的src/main目录下,创建一个名为jni的文件夹。在该文件夹中,创建一个名为native_lib.c的C文件,并实现你的JNI接口函数。

#include <jni.h>

// JNI接口函数示例
JNIEXPORT jstring JNICALL
Java_com_example_myapp_MyNativeClass_getMessage(JNIEnv *env, jobject instance) {
    return (*env)->NewStringUTF(env, "Hello from C!");
}

请注意,这只是一个简单的示例,你可以根据需要添加你自己的JNI接口函数。

5、 在Java代码中调用C函数: 在你的Java代码中,创建一个用于访问C函数的本地接口类。

public class MyNativeClass {
    static {
        System.loadLibrary("libredwg");
    }

    public native String getMessage();
}

请确保System.loadLibrary()中的库名称与CMakeLists.txt文件中的库名称相匹配。

6、 构建和运行: 在Android Studio中,点击"Build"菜单,然后选择"Build Project"来构建你的项目。如果一切顺利,你就可以在你的Java代码中调用C函数了。

以上是一个简单的指南,帮助你将Libredwg的C语言代码集成到Android项目中,使用NDK进行编译和调用。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

参考gpt:
结合自己分析给你如下建议:
Libredwg这个开源库感兴趣,它可以用来解析和修改CAD的DWG文件。我为您搜索了一些关于如何使用cmakeList调试Libredwg的网页,也为您提供了一些编译和使用的建议。😊
CMake应用:CMakeLists.txt完全指南:这篇文章介绍了如何书写一个完备的CMakeLists.txt文件,满足一般项目的基础构建要求,包括设置项目版本、指定编程语言版本、配置编译选项、添加头文件路径、编译生成不同类型的目标文件等内容。您可以参考这篇文章来学习CMake的基本用法和语法。
cmake gdb 编译调试详解:这篇文章介绍了如何使用cmake和gdb进行编译和调试,包括设置编译类型、支持gdb的调试、引入外部包等内容。您可以参考这篇文章来了解如何使用cmake和gdb进行项目的开发和测试。
C语言库学习(四):用libredwg解析cad的dwg文件——第一版(qt):这篇博客记录了作者使用libredwg库来解析cad的dwg文件的过程,包括编译源代码、引用头文件、编写测试代码等内容。您可以参考这篇博客来了解如何使用libredwg库来实现您的需求。
根据Libredwg的官方文档,您需要在Linux或者MacOS上进行编译和使用,因为Windows上还不支持。您也需要安装一些依赖库,如zlib, libxml2, pcre2等。您可以按照文档中的步骤来配置和安装libredwg库,并且运行一些示例程序来测试其功能。

如果您想要将libredwg库融入到安卓项目里面去,您可能需要使用Android NDK来进行交叉编译,将libredwg库编译成安卓平台上可以使用的动态链接库或者静态链接库。然后,您可以通过JNI或者NDK接口来调用libredwg库中的函数,实现对DWG文件的操作。具体的操作步骤和教程,您可以参考以下几个网页 。

就是用clion运行对吗

引用 皆我百晓生 小程序回复内容作答:
很高兴为您提供帮助!以下是使用CMake将LibreDWG库集成到Android项目中的基本步骤:

  1. 确保您的开发环境已经配置好了Android Studio和NDK。

  2. 克隆LibreDWG库到您的本地机器上:

    git clone https://github.com/LibreDWG/libredwg.git
    
  3. 打开Android Studio并创建一个新的Android项目。

  4. 新建一个名为jni的文件夹(如果不存在的话)来存放NDK相关的文件。

  5. 在jni文件夹下创建一个名为CMakeLists.txt的文件,并将以下内容添加到文件中:

    cmake_minimum_required(VERSION 3.4.1)
    add_library(libredwg STATIC IMPORTED)
    set_target_properties(libredwg PROPERTIES IMPORTED_LOCATION
        /path/to/libredwg/library/libredwg.a)
    include_directories(/path/to/libredwg/include)
    target_link_libraries(your_app_name libredwg)
    

    请将 "/path/to/libredwg" 替换为您本地LibreDWG库的路径。

  6. 打开 AndroidManifest.xml 文件并添加以下权限到文件中:

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    
  7. 在app/build.gradle中添加如下配置:

    android {
        defaultConfig {
            externalNativeBuild {
                cmake {
                    cppFlags "-std=c++11"
    
                    arguments "-DANDROID_STL=c++_shared"
    
                    abiFilters 'armeabi-v7a', 'arm64-v8a'
                }
            }
        }
    
        externalNativeBuild {
            cmake {
                path 'src/main/jni/CMakeLists.txt'
            }
        }
    }
    
  8. 编译和运行您的Android项目。

这样,LibreDWG库就会被集成到您的Android项目中了。如果在此过程中遇到任何问题,请随时联系我。

结合GPT给出回答如下请题主参考
首先,您需要在 cmakelists.txt 文件中添加适当的配置,以使您的 Android 项目与 Libredwg 库链接。以下是一个示例 cmakelists.txt 文件:

# CMake version
cmake_minimum_required(VERSION 3.4.1)

# Add your Librewdg library path
set(LIBREDWG_PATH /path/to/libredwg)

# Include directories
include_directories(${LIBREDWG_PATH}/include)

# Add Libredwg library
add_library(libredwg SHARED IMPORTED)
set_target_properties(libredwg PROPERTIES IMPORTED_LOCATION ${LIBREDWG_PATH}/lib/libredwg.so)

# Add your Android project source files
add_library(myapp SHARED src/main/cpp/myapp.cpp)

# Link the Libredwg library with your Android project library
target_link_libraries(myapp libredwg)

在这里,您需要将 LIBREDWG_PATH 变量设置为您下载的 Libredwg 源代码的路径。然后,使用 include_directories 命令添加 Libredwg 的头文件路径,并使用 add_library 命令将 Libredwg 库添加到编译过程中。最后,使用 target_link_libraries 命令将 Libredwg 库链接到您的 Android 项目中。

如果您遇到其他问题,请尽快联系我。

【以下回答由 GPT 生成】

如何在安卓项目中使用C语言库Libredwg并进行调试?

步骤一:下载并导入Libredwg库

首先,你需要将Libredwg库下载到你的项目中。你可以在Github上找到Libredwg的源码链接:https://github.com/LibreDWG/libredwg。下载Zip文件并解压。

在你的安卓项目中,新建一个名为jniLibs的文件夹 (如果不存在的话)。然后将解压后的Libredwg库中的lib文件夹拷贝到jniLibs目录下。

步骤二:配置JNI环境和CMakeLists.txt文件

在安卓项目的app模块中的src文件夹下,创建一个名为main/jni的文件夹,用于存放JNI相关的文件。

jni文件夹中,创建一个名为native-lib.c的C语言文件。这个文件将用于编写你想调用的C语言函数。

示例native-lib.c文件内容:

#include <jni.h>

JNIEXPORT jstring JNICALL
Java_com_example_myapplication_MainActivity_stringFromJNI(JNIEnv *env, jobject instance) {
    return (*env)->NewStringUTF(env, "Hello from C");
}

jni文件夹中,还需要创建一个名为CMakeLists.txt的文件。这个文件用于配置CMake构建工具,以便编译和链接你的C源码。

示例CMakeLists.txt文件内容:

# 指定CMake的最低版本
cmake_minimum_required(VERSION 3.4.1)

# 设置变量
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../../../../libs)

# 添加预编译的Libredwg库
add_library(libredwg SHARED IMPORTED)
set_target_properties(libredwg PROPERTIES IMPORTED_LOCATION
    ${distribution_DIR}/${ANDROID_ABI}/liblibredwg.so)

# 添加你的C源码
add_library(native-lib SHARED native-lib.c)

# 链接Libredwg库和你的C源码
target_link_libraries(native-lib libredwg log)

步骤三:修改build.gradle文件

在你的安卓项目的app模块中的build.gradle文件中,添加以下代码:

android {
    // ...

    // 设置CMake配置文件路径
    externalNativeBuild {
        cmake {
            path "src/main/jni/CMakeLists.txt"
        }
    }

    // ...

    // 设置支持的ABI(根据你的需求修改)
    defaultConfig {
        // ...
        ndk {
            abiFilters "armeabi-v7a", "x86"
        }
    }

    // ...

    // 指定链接库的搜索路径
    sourceSets {
        main {
            jniLibs.srcDirs = ['src/main/jniLibs']
        }
    }
}

步骤四:在Java代码中调用C函数

在你的Java代码中,你可以通过JNI调用你在C语言文件中定义的函数。

示例MainActivity.java文件内容:

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    // 加载C库
    static {
        System.loadLibrary("native-lib");
    }

    // 声明native函数
    public native String stringFromJNI();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 调用C函数
        TextView textView = findViewById(R.id.textView);
        textView.setText(stringFromJNI());
    }
}

步骤五:编译和运行项目

使用Android Studio进行编译和运行你的安卓项目。

确保你已经根据你的需求修改了步骤三和步骤四中的相应配置。

如果一切正常,你的安卓项目将能够成功运行,并从你的C函数中返回一个字符串。当你看到屏幕上显示Hello from C时,表示你成功地在安卓项目中使用了Libredwg库。


如果你按照以上步骤进行尝试仍然遇到问题,请在评论中提供详细信息,我将尽力帮助你解决问题。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

README有使用方法的

我去下载编译试试

remand文档里面有详细的

查看项目Readme,有详细介绍,遇到问题,请提供错误截图