You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio编译MATLAB Coder代码遇omp_init_nest_lock未定义错误

解决Android Studio中MATLAB Coder代码编译出现omp_init_nest_lock未定义的问题

检查CMakeLists.txt的OpenMP配置

  • 确保CMake版本适配NDK25,在CMakeLists开头设置:
    cmake_minimum_required(VERSION 3.18.1)
    
  • 启用OpenMP并关联编译、链接参数,替换你的目标名称为实际CMake目标(如app或自定义库名):
    find_package(OpenMP REQUIRED)
    if(OpenMP_C_FOUND)
        target_compile_options(你的目标名称 PRIVATE ${OpenMP_C_FLAGS})
        target_link_libraries(你的目标名称 PRIVATE ${OpenMP_C_LIBRARIES})
    endif()
    

确认MATLAB Coder的生成配置

  • 重新检查MATLAB Coder的代码生成设置:必须在性能优化选项中开启OpenMP支持。如果生成代码时未启用该选项,代码会调用OpenMP函数但未正确关联依赖,导致链接错误。

锁定NDK工具链的编译器

  • 在app模块的build.gradle中明确指定NDK版本和clang工具链,避免使用系统默认编译器:
    android {
        ndkVersion "25.2.9519653"
        externalNativeBuild {
            cmake {
                path "CMakeLists.txt"
                arguments "-DANDROID_STL=c++_shared", "-DANDROID_TOOLCHAIN=clang"
            }
        }
    }
    

手动链接gomp库(备选方案)

  • 若上述配置无效,可在CMakeLists.txt中手动指定链接OpenMP的实现库:
    target_link_libraries(你的目标名称 PRIVATE gomp)
    

清理重建项目

  • 执行Android Studio的Build -> Clean Project,再执行Build -> Rebuild Project,清除旧编译缓存的影响。

内容的提问来源于stack exchange,提问作者Matheus Fortunato Alves

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:14:56