HarmonyOS鸿蒙Next中API8 native C++工程log输出问题,找不到OH_LOG_Print ld.lld: error: undefined symbol: OH_LOG_Print

HarmonyOS鸿蒙Next中API8 native C++工程log输出问题,找不到OH_LOG_Print ld.lld: error: undefined symbol: OH_LOG_Print 找不到OH_LOG_Print ld.lld: error: undefined symbol: OH_LOG_Print

cke_2051.png


更多关于HarmonyOS鸿蒙Next中API8 native C++工程log输出问题,找不到OH_LOG_Print ld.lld: error: undefined symbol: OH_LOG_Print的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

CMakeLists.txt加上这个

find_library(
    # Sets the name of the path variable.
    hilog-lib
    # Specifies the name of the NDK library that
    # you want CMake to locate.
    hilog_ndk.z
)

更多关于HarmonyOS鸿蒙Next中API8 native C++工程log输出问题,找不到OH_LOG_Print ld.lld: error: undefined symbol: OH_LOG_Print的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


修改CMakeLists libhilog_ndk.z.so 是日志so
target_link_libraries(entry PUBLIC libace_napi.z.so libhilog_ndk.z.so)

升级HarmonyOS后,发现手机的游戏性能也有了显著提升。

这个看不出什么问题额,能提供给下工程吗?

已经解决,

感谢您的反馈,如后期有疑问可以随时发帖,感谢您的支持。

NAPI C++ 中如何使用 OH_LOG_Print 打印出来正确的 string 类型的值?

在HarmonyOS鸿蒙Next中,API8的Native C++工程中遇到OH_LOG_Print未定义符号的问题,通常是由于以下原因之一导致的:

  1. 头文件包含问题:确保在代码中正确包含了hilog/log.h头文件。该头文件中定义了OH_LOG_Print函数。

  2. 链接库缺失:OH_LOG_Print函数位于libhilog_ndk.z.so库中。确保在CMakeLists.txt或构建配置文件中正确链接了该库。例如,在CMakeLists.txt中添加:

    target_link_libraries(your_target_name PRIVATE libhilog_ndk.z.so)
    
  3. API版本不匹配:检查你的工程是否使用了正确的API版本。OH_LOG_Print在API8中可用,但如果你使用了其他API版本,可能会导致未定义符号。

  4. 构建工具链问题:确保你使用的构建工具链(如ld.lld)与HarmonyOS的NDK版本兼容。不兼容的工具链可能会导致符号解析失败。

  5. NDK路径配置:检查你的NDK路径是否正确配置,并且包含了libhilog_ndk.z.so库。

如果你确认以上配置都正确,但仍然遇到问题,建议检查你的构建环境是否完整,并确保所有依赖项都已正确安装和配置。

在HarmonyOS鸿蒙Next中,使用API8进行Native C++开发时,如果遇到OH_LOG_Print未定义的错误,通常是因为缺少必要的库链接。请确保在CMakeLists.txtBUILD.gn中正确链接了libhilog_ndk.z.so库。例如,在CMakeLists.txt中添加:

target_link_libraries(your_target_name PRIVATE hilog_ndk)

如果问题仍未解决,请检查SDK版本是否匹配,并确保hilog_ndk库已正确安装。

回到顶部