如何在 Flutter 项目中调试 C/C++ 代码在 Flutter 中使用 C/C++ 时,官方的开发插件并非为 C
对于 Flutter 应用开发,使用 Dart 和 VS Code 或 JetBrains IDE 很容易设置开发和调试环境。
然而,在 Flutter 中使用 C/C++ 时,情况有所不同,因为官方的 Dart 和 Flutter IDE 插件并非为 C/C++ 开发而设计。
为了在多个操作系统上开发和调试 C/C++ 项目,我们需要为每个平台配置和设置不同的 IDE,如下所示:
C/C++ 项目有很多开发环境可供选择。我们可以使用 Xcode 进行 iOS 和 macOS 开发,使用 Android Studio 进行 Android 开发,使用 Visual Studio 进行 Windows 开发,并使用其他 IDE 工具进行 Linux 平台开发。
根据我的个人经验,我最常使用的最佳开发 IDE 是 JetBrains 的 CLion,它在各个平台上提供了一致的开发体验。
对于在 Flutter 应用中使用 C/C++ 的开发人员来说,通常会在不同平台上部署和共享相同的代码库,这些平台拥有各种操作系统和 CPU 架构。使用相同的 IDE 可以让您更方便地重用这些工具的使用经验。
在 CLion 中配置您的 C/C++ 项目
CLion 对 CMake 项目有内置支持。要使用 IntelliSense 配置 CLion,您需要打开包含 CMakeLists.txt
文件的项目文件夹。在我们的示例项目中,这将是 <project_root>/src
目录:
CLion 将根据您的 CMake 配置自动配置您的 C/C++ 项目。
使用 CLion 调试您的 Flutter 应用
在包括 macOS、Windows 和 Linux 的桌面平台上,使用 CLion 调试 Flutter 应用更容易。
也建议先在桌面上开发您的 C/C++ 代码,然后交叉编译并在移动平台上运行。
使用 CLion LLDB 调试器启动 Flutter 应用
首先,您需要编译您的 Flutter 应用:
flutter build macos --debug
编译完成后,应用程序将生成
在 <project_root>/example/build/macos/Build/Products/Debug/flutter_native_example_example.app
目录下。
对于 Linux 或 Windows 平台,只需在
<project_root>/example/build/
目录下查找您的 Flutter 应用。
在 CLion 中添加调试器配置
打开 CLion,点击顶部的 Edit Configurations
选项菜单:
点击左上角的+
按钮并选择Native Application
:
移除中下部的默认Build
配置,然后点击带有Executable:
标签的下拉菜单:
找到并选择您的 Flutter 应用的可执行文件,位于<project_root>/example/build/
目录下。
选择结果如下:
现在可以准备进行调试了。点击顶部栏的调试图标开始调试:
使用 CLion 调试器附加运行中的应用程序
如果您的应用程序在 CLion 调试器启动之前已经启动,您可以使用 CLion 的 Attach To Process
功能附加到现有的运行中的 Flutter 应用
在 Xcode 中调试 C/C++ 代码
Xcode 是 macOS 和 iOS 平台上调试 C/C++ 的另一种 IDE。首先,在 Xcode 中打开 Runner.xcworkspace
项目。
默认情况下,我们的 C/C++ 代码源代码在 Xcode 中是不可见的,因此我们需要进行额外的设置,使其可见并允许在其上设置断点:
在 Xcode 中,右键单击 Runner
项目并选择 Add Files to "Runner"
:
选择包含CMakeLists.txt
的源文件夹,但请记住要取消选择底部的所有目标,因为我们不希望 Xcode 将我们的 C/C++ 代码打包到项目中。
现在,我们可以在 Xcode 中设置断点并调试 C++ 源代码:
在 Android Studio 中调试 C/C++ 代码
Android Studio 支持在 Android 上开发和调试 C/C++ 代码。
对于 Android 的 Flutter 应用,打开 Android Studio 中的 example/android
目录:
一旦项目在 Android Studio 中完全配置,您将看到您的 C/C++ 代码被 Android Studio 识别和索引。
点击顶部的app
入口点并选择 "Edit Configuration":
确保调试类型设置为 "Dual (Java + Native)" 模式:
现在,我们的 C/C++ 代码可以在 Android Studio 中开发和调试:
在 Visual Studio 中调试 C/C++ 代码
Visual Studio 在 Windows 平台上为 C/C++ 提供了强大的开发者体验。
Flutter 项目使用 CMake 生成 Visual Studio 项目模板。
首先,通过运行以下命令编译您的 Flutter 应用:
flutter build windows --debug
这将在 <project_root>/example/build/windows/x64
目录下生成 Visual Studio 项目工作区。打开 Visual Studio 并加载此位置的 ALL_BUILD.vcproj
文件。
右键单击解决方案标题并选择Properties
:
将Single startup project
值更改为flutter_native_example_example
:
打开demo_library
文件夹中的 C/C++ 代码文件并设置断点:
点击Debug
->Start Debugging
:
现在调试器应该可以工作了:
查看演示并亲自尝试
本文中的所有代码都位于此 GitHub 仓库中:
下一章节
在下一章节中,我们将重点介绍 Flutter 应用中的 Dart FFI,涵盖双向同步和异步调用、复杂数据结构处理以及性能优化技巧。
转载自:https://juejin.cn/post/7412505754378731520