Qu'est-ce que le idiomatiques façon CMAKE pour ajouter l'option-fPIC option du compilateur?

Que j'ai rencontré au moins 3 façons de le faire et je me demande qui est le idiomatiques façon. Ce qui doit être fait presque universellement à toute bibliothèque statique. Je suis surpris que le générateur de Makefile dans CMake ne pas ajouter automatiquement ce statiques des bibliothèques. (sauf que je suis absent quelque chose?)

target_compile_options(myLib PRIVATE -fPIC)

add_compile_options(-fPIC)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fpic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpic")

Je crois qu'il peut aussi y avoir d'autres variantes. (s'il vous plaît modifier ma question, si vous en trouvez un)

Si vous connaissez la réponse à cette question, avez-vous aussi de savoir si il existe un moyen de provoquer une 3ème partie CMake projet à être compilé avec ce drapeau sans modifier son CMakeLists.txt fichier? J'ai couru à travers les bibliothèques statiques manque le drapeau. Il provoque des problèmes lors de la compilation d'une bibliothèque statique dans une bibliothèque dynamique.

Vous bénéficiez de:

relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC
InformationsquelleAutor 010110110101 | 2016-07-10