J'essaye de créer un projet en tant que bibliothèque partagée dans OS X en utilisant CMake 2.8 et gcc 4.6 (de macports). Lorsque CMake arrive au point de relier ma bibliothèque en .dylib, je reçois l'erreur suivante de gcc:CMake/GCC "option non reconnue" sur Mac OS X
g++ -dynamiclib -headerpad_max_install_names -o libmycoollibrary.dylib etc...
g++: error: unrecognized option '-h'
make[2]: *** [libnrtCore.dylib] Error 1
make[1]: *** [CMakeFiles/nrtCore.dir/all] Error 2
make: *** [all] Error 2
Ce -headerpad_max_install_names semble être le problème, mais je ne l'ai jamais vu auparavant. Est-ce que quelqu'un sait comment obtenir CMake pour ne pas inclure cette option, ou pour que GCC accepte cette option?
Malheureusement, je dois utiliser gcc 4.6 car j'ai besoin de la prise en charge des toutes dernières fonctionnalités C++ 0x. – rcv
On dirait que vous devrez reconstruire cmake; le fichier à modifier est Darwin.cmake. La ligne du coupable est SET (CMAKE_CXX_LINK_FLAGS "-Wl, -search_paths_first -headerpad_max_install_names") – EmeryBerger
Cela a fonctionné parfaitement, merci. Pourriez-vous modifier votre réponse pour refléter votre commentaire afin que je puisse l'accepter? Notez également que le simple fait de changer Darwin.cmake n'a pas fonctionné - j'ai dû changer tous les fichiers Modules/Platform/Darwin * pour que cela fonctionne. – rcv