HarmonyOS 鸿蒙Next native侧代码 cmakelists.txt中不能使用find_package查找三方库吗
HarmonyOS 鸿蒙Next native侧代码 cmakelists.txt中不能使用find_package查找三方库吗
我在cmakelists.txt中需要依赖到protobuf 本地已经安装 在c++项目中可以找到并使用,但是在deveco studio中 cpp下 构建时
> hvigor ERROR: Failed :entry:default@BuildNativeWithCmake…
> hvigor ERROR: Exceptions happened while executing: CMake Error at /Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/build-tools/cmake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Protobuf (missing: Protobuf_LIBRARIES Protobuf_INCLUDE_DIR)
Call Stack (most recent call first):
/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/build-tools/cmake/share/cmake-3.28/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/Applications/DevEco-Studio.app/Contents/sdk/default/openharmony/native/build-tools/cmake/share/cmake-3.28/Modules/FindProtobuf.cmake:749 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:10 (find_package)
Not searching for unused variables given on the command line.
– Configuring incomplete, errors occurred!
更多关于HarmonyOS 鸿蒙Next native侧代码 cmakelists.txt中不能使用find_package查找三方库吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
根据提供的报错信息,是protobuf的路径不对,提示找不到protobuf,需要检查下,请参考:https://gitee.com/openharmony-sig/tpc_c_cplusplus/blob/master/thirdparty/protobuf_v3.6.1/docs/hap_integrate.md#protobuf_v361%E9%9B%86%E6%88%90%E5%88%B0%E5%BA%94%E7%94%A8hap
也可以参考一个7z库的编译,步骤是类似的:https://gitee.com/igetcool/igcarchive/tree/master
更多关于HarmonyOS 鸿蒙Next native侧代码 cmakelists.txt中不能使用find_package查找三方库吗的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next的native侧开发中,CMakeLists.txt
文件通常用于配置C/C++编译过程。关于在CMakeLists.txt
中使用find_package
查找三方库的问题,具体答案如下:
HarmonyOS的CMake集成环境可能不直接支持标准的find_package
命令来查找并链接三方库,这主要是因为HarmonyOS构建系统有其特定的依赖管理和库链接机制。为了使用三方库,你可能需要手动指定库的路径和名称,通过link_directories
和target_link_libraries
等命令来链接库文件。
例如,如果你的三方库位于某个特定目录下,你可以在CMakeLists.txt
中这样配置:
link_directories(/path/to/your/lib)
target_link_libraries(your_target_name your_library_name)
其中/path/to/your/lib
是库文件所在的目录,your_target_name
是你的目标可执行文件或库名,your_library_name
是你要链接的库名(通常不包括前缀lib
和后缀如.so
、.a
等)。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html