target_link_libraries
用于指定目标(如可执行文件或库)要链接的库
cmake_minimum_required(VERSION 3.10)# 设置项目名称
project(my_project)# 添加可执行文件
add_executable(my_executable main.cpp)# 链接外部库
target_link_libraries(my_executable mylib)
target_compile_definitions
target_compile_definitions在CMake中用于为特定目标(如可执行文件或库)在编译时设置预处理器定义。
cmake_minimum_required(VERSION 3.10)# 设置项目名称
project(my_project)# 添加可执行文件
add_executable(my_executable main.cpp)# 设置预处理器定义
target_compile_definitions(my_executable PRIVATE DEBUG)
其中,main.cpp
的首行用DEBUG进行判断
# if defined(DEBUG)
set_target_properties
set_target_properties 用于设置目标(如可执行文件或库)的属性。通过这个指令,你可以修改目标的多个属性,从而控制目标的构建过程。
set_target_properties(vcap_npu_networkPROPERTIESIMPORTED_LOCATION${CMAKE_CURRENT_SOURCE_DIR}/../../jniLibs/${CMAKE_ANDROID_ARCH_ABI}/libvcap_npu_network.so)
- configure attribute of macro(宏)
#define VCAP_PUBLIC __attribute__((visibility("default")))
这段代码的作用是定义一个名为 VCAP_PUBLIC 的宏,并将它设置为 attribute((visibility(“default”)))。具体解释如下:
#define VCAP_PUBLIC attribute((visibility(“default”))):这行代码定义了一个宏 VCAP_PUBLIC,它实际上是一个编译器的属性设置,用来控制符号的可见性。
attribute((visibility(“default”))):这个属性告诉编译器,标记的符号(如类、函数或变量)在生成的共享库(shared library)中是默认可见的。即,这些符号可以被共享库之外的代码引用和使用。
#define VCAP_PRIVATE __attribute__((visibility("hidden")))
则为不可见
常识
- 引用了一个headerfile后,即可使用其中声明并定义的类,
- 如果headerfile将类放在自定义的命名空间中,引用前要想namespace std一样加上命名空间名