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

Reply via email to