Actually, I should not modify CMAKE_CXX_COMPILER_FLAGS. It seems that the problem comes from the variable CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS which only contains ' -bundle -Wl,-headerpad_max_install_names' but not ' -undefined dynamic_lookup'.
How to overcome this problem? ----- Mail original ----- > De: "Cedric Doucet" <cedric.dou...@inria.fr> > À: cmake@cmake.org > Envoyé: Jeudi 9 Mars 2017 23:41:03 > Objet: Missing 'undefined dynamic_lookup' flag > Hello, > I am trying to find a portable way of generating modules with CMake. > Here is a toy CMake script: > ------------------------------- > CMAKE_MINIMUM_REQUIRED(VERSION 2.8) > PROJECT(dlopen_example CXX) > ADD_EXECUTABLE(main main.cpp print_ref.cpp) > TARGET_LINK_LIBRARIES(main dl) > ADD_LIBRARY(module MODULE module.cpp) > ------------------------------- > This script works fine with g++ on Linux Ubuntu. > However, I get an error message with clang on Mac OSX: > ---------------------------- > Undefined symbols for architecture x86_64: > "print_ref()", referenced from: > _module in module.cpp.o > ld: symbol(s) not found for architecture x86_64 > clang: error: linker command failed with exit code 1 (use -v to see > invocation) > make[2]: *** [libmodule.so] Error 1 > make[1]: *** [CMakeFiles/module.dir/all] Error 2 > make: *** [all] Error 2 > ---------------------------- > I found a solution to this problem by adding the 'undefined dynamic_lookup' > flag : > SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -undefined dynamic_lookup") > But, I am surprised that the MODULE option of ADD_LIBRARY does not handle > such a flag. > Is there a portable solution to this problem with CMake? > Best regards, > Cédric Doucet
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake