HarmonyOS 鸿蒙Next native工程自动链接了c++_shared

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next native工程自动链接了c++_shared native代码是纯C写的,但是工程编译的时候老是自动链接了c++_shared,导致项目包会集成一个libc++_shared.so,该如何去除它

2 回复

// 修改步骤的说明: // 1.请检查下build-profile.json5文件中,buildOption中externalNativeOptions的arguments项中定义成:“arguments”: “-V -DOHOS_STL=c++_shared”,类似如下:

“externalNativeOptions”: { “path”: “./src/main / cpp / CMakeLists.txt”, “arguments”: “-v -DOHOS_STL=c++_static”, “cppFlags”: “”, }

// 2.CMakeLists.txt文件中,增加第二与第三条set语句,类似如下:

project(abxconverter)

set(CMAKE_C_FLAGS “{ CMAKE_C_FLAGS } -s -ftrapv -D_FORTIFY_SOURCE=2 -O2”) set(CMAKE_CXX_FLAGS “{ CMAKE_CXX_FLAGS } -s -ftrapv -D_FORTIFY_SOURCE=2 -O2”)

set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})

更多关于HarmonyOS 鸿蒙Next native工程自动链接了c++_shared的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对帖子标题“HarmonyOS 鸿蒙Next native工程自动链接了c++_shared”的问题,以下是专业回答:

在HarmonyOS鸿蒙Next的开发环境中,若native工程自动链接了c++_shared库,这通常是由于项目配置或构建脚本中指定了相关依赖。c++_shared库是C++标准库的共享版本,它提供了C++程序运行所需的运行时支持。

要解决这个问题,你可以检查以下几个方面:

  1. 项目配置文件:查看项目的BUILD.gn或CMakeLists.txt等配置文件,确认是否有显式或隐式地指定链接c++_shared库。

  2. 构建脚本:检查构建脚本中是否有相关命令或参数导致链接了c++_shared库。

  3. 第三方库依赖:如果你的项目依赖了第三方库,这些库可能自身依赖了c++_shared。检查这些库的文档或构建配置,确认是否引入了不必要的依赖。

  4. 环境变量:检查构建环境的环境变量设置,确保没有因环境变量导致自动链接c++_shared库。

如果经过上述检查后问题仍未解决,可能是HarmonyOS鸿蒙Next的SDK或工具链本身的默认行为。此时,你可以考虑查阅HarmonyOS的官方文档或社区论坛获取更多信息。

如果问题依旧没法解决请联系官网客服, 官网地址是 https://www.itying.com/category-93-b0.html

回到顶部