Dear All,
I am trying to port a C++/SWIG project that compiles on Linux to MacOs X. I installed root6 with brew following alexpearce.me/2016/02/root-on-os-x-el-capitan/ . Root works fine on my mac
[code]$ root
| Welcome to ROOT 6.08/00 http://root.cern.ch |
| © 1995-2016, The ROOT Team |
| Built for macosx64 |
| From tag v6-08-00, 4 November 2016 |
Try ‘.help’, ‘.demo’, ‘.license’, ‘.credits’, ‘.quit’/’.q’ |
---|
root [0] .q
[/code]
in my cmake file I use:
find_package(ROOT REQUIRED COMPONENTS RIO Net Hist)
include(${ROOT_USE_FILE})
if I print
MESSAGE(STATUS ${ROOT_INCLUDE_DIRS})
MESSAGE(STATUS ${ROOT_LIBRARIES})
i get
-- /usr/local/opt/root6/include/root
-- /usr/local/opt/root6/lib/root/libCore.so/usr/local/opt/root6/lib/root/libRIO.so/usr/local/opt/root6/lib/root/libNet.so/usr/local/opt/root6/lib/root/libHist.so/usr/local/opt/root6/lib/root/libGraf.so/usr/local/opt/root6/lib/root/libGraf3d.so/usr/local/opt/root6/lib/root/libGpad.so/usr/local/opt/root6/lib/root/libTree.so/usr/local/opt/root6/lib/root/libRint.so/usr/local/opt/root6/lib/root/libPostscript.so/usr/local/opt/root6/lib/root/libMatrix.so/usr/local/opt/root6/lib/root/libPhysics.so/usr/local/opt/root6/lib/root/libMathCore.so/usr/local/opt/root6/lib/root/libThread.so/usr/local/opt/root6/lib/root/libMultiProc.so[/code]
and here is the relevan part of the CMake file:
[code]find_package(SWIG 3.0.10 REQUIRED)
include(${SWIG_USE_FILE})
find_package(PythonLibs)
include_directories(${PYTHON_INCLUDE_PATH}
${CMAKE_CURRENT_SOURCE_DIR}/include
${CPP_SOURCE_FILES}
${COMMON_INCLUDES}
${ROOT_INCLUDE_DIRS}
)
add_library(Liblib SHARED ${CPP_SOURCE_FILES}/source1.cpp
${CPP_SOURCE_FILES}/source2.cpp
${CPP_SOURCE_FILES}/source3.cpp
)
set_property(SOURCE ${SWIG_PROJECTS_DIR}/source.i PROPERTY CPLUSPLUS ON)
set_property(SOURCE ${SWIG_PROJECTS_DIR}/source.i PROPERTY SWIG_FLAG "-includeall" "-py3" "-builtin" "-externative")
swig_add_module(sourceall python ${SWIG_PROJECTS_DIR}/source.i
${CPP_SOURCE_FILES}/sourceall.cpp
) # I need to link to an external library
swig_link_libraries(sourceall Liblib ${PYTHON_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ROOT_LIBRARIES})
but i get this error message:
[code][ 91%] Linking CXX shared library libLiblib.dylib
Undefined symbols for architecture x86_64:
“TVersionCheck::TVersionCheck(int)”, referenced from:
___cxx_global_var_init in source1.cpp.o
"TH1F::TH1F(char const*, char const*, int, double, double)", referenced from:
Source1Class::populateList(unsigned int) in source1.cpp.o
Source1Class::resetHistLimits(unsigned int, unsigned int, unsigned int) in source1.cpp.o
"TFile::TFile(char const*, char const*, char const*, int)", referenced from:
…
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[/code]
Do you have any hit or clue of what is going on?
Thanks in advace