I\'ve come across at least 3 ways to do this and I\'m wondering which is the idiomatic way. This needs to be done almost universally to any static library. I\'m surprised
If this is not your cmake project and you can't or don't want to modify the project files you can also pass the following command line option to cmake
:
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
You can set the position independent code property on all targets:
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
or in a specific library:
add_library(lib1 lib1.cpp)
set_property(TARGET lib1 PROPERTY POSITION_INDEPENDENT_CODE ON)
Reference: CMAKE_POSITION_INDEPENDENT_CODE cmake build system