1# SDK Usage
2
3
4## What is the macro definition of the arm64-v8a/armeabi-v7a directory in CMake? (API version 9)
5
6**Solution**
7
8The **arm64-v8a** and **armeabi-v7a** directories are as follows:
9
10```
11entry
12├─ libs
13│    ├─ arm64-v8a
14│    │    └─ libMyDemo.so
15│    └─ armeabi-v7a
16│         └─ libMyDemo.so
17└─ src
18     └─ main
19          └─ cpp
20               └─ CMakeLists.txt
21```
22
23The macro for accessing the directory is **${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/xxxx.so**.
24
25**CMAKE_CURRENT_SOURCE_DIR**: directory where the **CMakeList.txt** file is stored.
26
27**OHOS_ARCH**: type of the application binary interface (ABI). The value can be **armeabi-v7a** or **arm64-v8a**. The default value is **arm64-v8a**.
28
29**Example**
30
31Add the link library to **CMakeLists.txt**.
32
33```
34target_link_libraries(entry PUBLIC
35    libace_napi.z.so
36    libhilog_ndk.z.so
37    ${CMAKE_CURRENT_SOURCE_DIR}/../../../libs/${OHOS_ARCH}/libMyDemo.so
38)
39```
40
41
42## What should I do if an error is reported when OH_LOG_Print in the native code is used to print logs? (API version 9)
43
44**Problem**
45
46When **OH\_LOG\_Print** is used in the native code to print logs, the following error is reported: **undefined symbol: OH_LOG_Print**.
47
48**Cause**
49
50The link library file is missing.
51
52**Solution**
53
54Open the **CMakeLists.txt** file and append **libhilog_ndk.z.so** to the end of **target_link_libraries**.
55
56```
57set(NATIVERENDER_ROOT_PATH ${CMAKE_CURRENT_SOURCE_DIR})
58target_link_libraries(entry PUBLIC
59    libace_napi.z.so
60    libhilog_ndk.z.so
61)
62```
63
64
65## How do I traverse files in rawfile? (API version 9)
66
67**Solution**
68
69Use the **OH_ResourceManager_OpenRawDir()** native API to obtain the root directory of **rawfile** and traverse the root directory.
70
71**Reference**
72
73[Rawfile](../reference/apis-localization-kit/rawfile.md)
74