我正在构建一个用 C++ 编写的共享库。它由 2 个类组成,因此有 2 个源文件和 2 个头文件。此外,为了简化使用,第三个头文件还包括其他两个头文件。所以我想安装3个公共标头。
问题是该属性仅PUBLIC_HEADER设置为第一个文件,而不是 3 个文件的列表(逗号分隔的字符串)。我用 查了一下。因此,仅复制该文件。属性似乎没有改变任何东西。get_target_property()FRAMEWORK
最终,我成功地用 复制了它们install(FILES),但看起来不是很干净。我该如何改进这个?
CMake 版本:3.16。
set(RST_PUBLIC_HEADERS
"rst.hpp"
"CPrbs.hpp"
"CRstController.hpp"
)
set_target_properties( ${PROJECT_NAME} PROPERTIES
VERSION ${PROJECT_VERSION}
FRAMEWORK TRUE
PUBLIC_HEADER ${RST_PUBLIC_HEADERS}
)
install(TARGETS ${PROJECT_NAME}
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include/lib${PROJECT_NAME}
)
Run Code Online (Sandbox Code Playgroud) 第一例:
>>> import numpy as np
>>> x=np.array(0)
>>> x=np.append(x,1)
>>> x
array([0, 1])
Run Code Online (Sandbox Code Playgroud)
x包含2个元素.这是为什么 ?!
第二个案例:
>>> x=np.array([])
>>> x=np.append(x,1)
>>> x
array([ 1.])
Run Code Online (Sandbox Code Playgroud)
x 正如预期的那样包含1个元素.
np.array(0)和之间有什么区别np.array([])?