似乎当INTERFACE库的一部分时,OBJECT库会忽略INTERFACE_POSITION_INDEPENDENT_CODE。以下CMakeLists.txt通过CMake传递时没有错误,尽管我希望它指出冲突。同样,使用-fPIC在archs
中构建对象完全取决于在archs
特定的set_target_properties
调用中设置的值。我可以通过has-iPIC上的target_compile_options
对其进行破解,但这并不酷。
这是一个错误吗?
或对某事的误解?
cmake版本:3.12.3
file(GLOB ARCHS_SRC "*.cpp")
add_library(has-iPIC INTERFACE)
set_target_properties(
has-iPIC
PROPERTIES
INTERFACE_POSITION_INDEPENDENT_CODE ON
)
add_library(archs OBJECT ${ARCHS_SRC})
target_link_libraries(archs
has-iPIC
)
set_target_properties(
archs PROPERTIES
POSITION_INDEPENDENT_CODE OFF
)