huks Native接口编译报错问题
===================

**问题场景**

使用huks密钥库的c接口生成密钥时编译报错，错误信息如下：

hvigor ERROR: Failed: har1withso:default@BuildNativeWithNinja… 
hvigor ERROR: Tools execution failed. 
Command failed with exit code 1: C:\\HarmonyOS\\sdk\\default\\base\\native\\build-tools\\cmake\\bin\\ninja.exe -C C:\\my\\harmonyos-project\\hos1230\\har1withso.cxx\\default\\default\\arm64-v8a 
ninja: Entering directory \`C:\\my\\harmonyos-project\\hos1230\\har1withso.cxx\\default\\default\\arm64-v8a’ 
\[1/2\] Building CXX object CMakeFiles/har1withso.dir/hello.cpp.o 
clang++: warning: argument unused during compilation: ‘–gcc-toolchain=C:/HarmonyOS/sdk/default/base/native/llvm’ \[-Wunused-command-line-argument\] 
\[2/2\] Linking CXX shared library C:\\my\\harmonyos-project\\hos1230\\har1withso\\build\\default\\intermediates\\cmake\\default\\obj\\arm64-v8a\\libhar1withso.so 
FAILED: C:/my/harmonyos-project/hos1230/har1withso/build/default/intermediates/cmake/default/obj/arm64-v8a/libhar1withso.so 
cmd.exe /C “cd . && C:\\HarmonyOS\\sdk\\default\\base\\native\\llvm\\bin\\clang++.exe --target=aarch64-linux-ohos --gcc-toolchain=C:/HarmonyOS/sdk/default/base/native/llvm --sysroot=C:/HarmonyOS/sdk/default/base/native/sysroot -fPIC -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fno-addrsig -Wa,–noexecstack -Wformat -Werror=format-security -D\_\_MUSL\_\_ -O0 -g -fno-limit-debug-info --rtlib=compiler-rt -fuse-ld=lld -Wl,–build-id=sha1 -Wl,–warn-shared-textrel -Wl,–fatal-warnings -lunwind -Wl,–no-undefined -Qunused-arguments -Wl,-z,noexecstack -shared -Wl,-soname,libhar1withso.so -o C:\\my\\harmonyos-project\\hos1230\\har1withso\\build\\default\\intermediates\\cmake\\default\\obj\\arm64-v8a\\libhar1withso.so CMakeFiles/har1withso.dir/hello.cpp.o -lace\_napi.z -lm && cd .” 
ld.lld: error: undefined symbol: OH\_Huks\_InitParamSet 
 
referenced by hello.cpp:7 (C:/my/harmonyos-project/hos1230/har1withso/src/main/cpp/hello.cpp:7) 
CMakeFiles/har1withso.dir/hello.cpp.o:(InitParamSet(OH\_Huks\_ParamSet\*\*, OH\_Huks\_Param const\*, unsigned int)) 
ld.lld: error: undefined symbol: OH\_Huks\_AddParams 
 
referenced by hello.cpp:11 (C:/my/harmonyos-project/hos1230/har1withso/src/main/cpp/hello.cpp:11) 
CMakeFiles/har1withso.dir/hello.cpp.o:(InitParamSet(OH\_Huks\_ParamSet\*\*, OH\_Huks\_Param const\*, unsigned int)) 
ld.lld: error: undefined symbol: OH\_Huks\_FreeParamSet 
 
referenced by hello.cpp:13 (C:/my/harmonyos-project/hos1230/har1withso/src/main/cpp/hello.cpp:13) 
CMakeFiles/har1withso.dir/hello.cpp.o:(InitParamSet(OH\_Huks\_ParamSet\*\*, OH\_Huks\_Param const\*, unsigned int)) 
referenced by hello.cpp:18 (C:/my/harmonyos-project/hos1230/har1withso/src/main/cpp/hello.cpp:18) 
CMakeFiles/har1withso.dir/hello.cpp.o:(InitParamSet(OH\_Huks\_ParamSet\*\*, OH\_Huks\_Param const\*, unsigned int)) 
ld.lld: error: undefined symbol: OH\_Huks\_BuildParamSet 
 
referenced by hello.cpp:16 (C:/my/harmonyos-project/hos1230/har1withso/src/main/cpp/hello.cpp:16) 
CMakeFiles/har1withso.dir/hello.cpp.o:(InitParamSet(OH\_Huks\_ParamSet\*\*, OH\_Huks\_Param const\*, unsigned int)) 
clang++: error: linker command failed with exit code 1 (use -v to see invocation) 
ninja: build stopped: subcommand failed. 
Detail: Please check the message from tools.

**解决措施**

在cmake文件里加一行target\_link\_libraries(hello\_openharmony PUBLIC libhuks\_ndk.z.so)，然后把hello\_openharmony换成自己的模块。