jeromerobert / hmat-oss

A hierarchical matrix C/C++ library
GNU General Public License v2.0
22 stars 11 forks source link

undefined symbols when compiling with apple clang #41

Closed jschueller closed 8 years ago

jschueller commented 8 years ago

here's the log, on osx from travis: tested with both 1.1.2 and master: (on master prepareBlock was also undefined) maybe travis/osx target could be added with gcc on osx the build is fine

cc @sofianehaddad

+ cmake -DCMAKE_FIND_ROOT_PATH=/Users/travis/miniconda/envs/_build -DCMAKE_INSTALL_PREFIX=/Users/travis/miniconda/envs/_build -DBLAS_LIBRARIES=/Users/travis/miniconda/envs/_build/lib/libopenblas.dylib -DBUILD_EXAMPLES=ON '-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,/Users/travis/miniconda/envs/_build/lib -L/Users/travis/miniconda/envs/_build/lib' ..
CMake Warning at /Users/travis/miniconda/envs/_build/share/cmake-3.5/Modules/Platform/Darwin-Initialize.cmake:97 (message):
  CMAKE_OSX_DEPLOYMENT_TARGET is '10.6' but the matching SDK does not exist
  at:

   "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.6.sdk"

  Instead using SDK:

   "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk".
Call Stack (most recent call first):
  /Users/travis/miniconda/envs/_build/share/cmake-3.5/Modules/CMakeSystemSpecificInitialize.cmake:18 (include)
  CMakeLists.txt:44 (project)

-- The C compiler identification is AppleClang 6.0.0.6000054
-- The CXX compiler identification is AppleClang 6.0.0.6000054
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "1.9.3 (Apple Git-50)") 
-- Version string is 1.1.2-153-g6d4d2a8
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for time.h
-- Looking for time.h - found
-- Looking for sys/resource.h
-- Looking for sys/resource.h - found
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Performing Test _ffast_math
-- Performing Test _ffast_math - Success
-- Performing Test _funsafe_math_optimizations
-- Performing Test _funsafe_math_optimizations - Success
-- Looking for sqrt in m
-- Looking for sqrt in m - found
-- Looking for clock_gettime in rt
-- Looking for clock_gettime in rt - not found
-- Try OpenMP C flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP C flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp=libomp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [ ]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-fopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [/openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-Qopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-openmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-xopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [+Oopenmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-qsmp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Try OpenMP CXX flag = [-mp]
-- Performing Test OpenMP_FLAG_DETECTED
-- Performing Test OpenMP_FLAG_DETECTED - Failed
-- Could NOT find OpenMP (missing:  OpenMP_C_FLAGS OpenMP_CXX_FLAGS) 
-- Performing Test MKL_PARALLEL_COMPILER_FLAG
-- Performing Test MKL_PARALLEL_COMPILER_FLAG - Failed
-- Could NOT find MKL (missing:  MKL_INCLUDE_DIRS) 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - found
-- Found Threads: TRUE  
-- A library with BLAS API found.
-- A library with BLAS API found.
-- Looking for cheev_
-- Looking for cheev_ - found
-- A library with LAPACK API found.
-- BLAS_FOUND = TRUE
-- BLAS_LINKER_FLAGS = 
-- BLAS_LIBRARIES = /Users/travis/miniconda/envs/_build/lib/libopenblas.dylib
-- LAPACK_LIBRARIES = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/System/Library/Frameworks/Accelerate.framework;/Users/travis/miniconda/envs/_build/lib/libopenblas.dylib
-- Looking for openblas_set_num_threads
-- Looking for openblas_set_num_threads - found
-- Looking for goto_get_num_procs
-- Looking for goto_get_num_procs - not found
-- Looking for cblas_dgemm
-- Looking for cblas_dgemm - found
-- Looking for cblas.h
-- Looking for cblas.h - found
-- 
-- The following OPTIONAL packages have been found:

 * Git

-- The following REQUIRED packages have been found:

 * BLAS
 * Threads
 * LAPACK

-- The following OPTIONAL packages have not been found:

 * OpenMP
 * MKL

-- Configuring done
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   hmat-oss

This warning is for project developers.  Use -Wno-dev to suppress it.

-- Generating done
-- Build files have been written to: /Users/travis/miniconda/conda-bld/work/build
+ make install
Scanning dependencies of target hmat-oss
[  3%] Building CXX object CMakeFiles/hmat-oss.dir/src/admissibility.cpp.o
[  6%] Building CXX object CMakeFiles/hmat-oss.dir/src/assembly.cpp.o
[  9%] Building CXX object CMakeFiles/hmat-oss.dir/src/c_default_interface.cpp.o
[ 12%] Building CXX object CMakeFiles/hmat-oss.dir/src/cluster_tree.cpp.o
[ 15%] Building CXX object CMakeFiles/hmat-oss.dir/src/clustering.cpp.o
[ 18%] Building CXX object CMakeFiles/hmat-oss.dir/src/common/context.cpp.o
[ 21%] Building CXX object CMakeFiles/hmat-oss.dir/src/common/memory_instrumentation.cpp.o
[ 25%] Building CXX object CMakeFiles/hmat-oss.dir/src/compression.cpp.o
[ 28%] Building CXX object CMakeFiles/hmat-oss.dir/src/coordinates.cpp.o
[ 31%] Building CXX object CMakeFiles/hmat-oss.dir/src/data_types.cpp.o
[ 34%] Building CXX object CMakeFiles/hmat-oss.dir/src/default_engine.cpp.o
[ 37%] Building CXX object CMakeFiles/hmat-oss.dir/src/disable_threading.cpp.o
[ 40%] Building CXX object CMakeFiles/hmat-oss.dir/src/fromdouble.cpp.o
[ 43%] Building CXX object CMakeFiles/hmat-oss.dir/src/full_matrix.cpp.o
[ 46%] Building CXX object CMakeFiles/hmat-oss.dir/src/h_matrix.cpp.o
[ 50%] Building CXX object CMakeFiles/hmat-oss.dir/src/lapack_operations.cpp.o
[ 53%] Building CXX object CMakeFiles/hmat-oss.dir/src/postscript.cpp.o
[ 56%] Building CXX object CMakeFiles/hmat-oss.dir/src/rk_matrix.cpp.o
[ 59%] Building CXX object CMakeFiles/hmat-oss.dir/src/uncompressed_values.cpp.o
[ 62%] Linking CXX shared library libhmat-oss.dylib
[ 62%] Built target hmat-oss
Scanning dependencies of target c-simple-kriging
[ 65%] Building C object CMakeFiles/c-simple-kriging.dir/examples/c-simple-kriging.c.o
[ 68%] Linking C executable c-simple-kriging
[ 68%] Built target c-simple-kriging
Scanning dependencies of target c-cylinder
[ 71%] Building C object CMakeFiles/c-cylinder.dir/examples/c-cylinder.c.o
[ 75%] Linking C executable c-cylinder
[ 75%] Built target c-cylinder
Scanning dependencies of target kriging
[ 78%] Building CXX object CMakeFiles/kriging.dir/examples/kriging.cpp.o
[ 81%] Linking CXX executable kriging
Undefined symbols for architecture x86_64:
  "hmat::AssemblyFunction<double>::assemble(hmat::LocalSettings const&, hmat::ClusterTree const&, hmat::ClusterTree const&, bool, hmat::FullMatrix<double>*&, hmat::RkMatrix<double>*&, hmat::AllocationObserver const&)", referenced from:
      vtable for KrigingAssemblyFunction in kriging.cpp.o
  "hmat::SimpleFunction<double>::getCol(hmat::ClusterData const*, hmat::ClusterData const*, int, void*, hmat::Vector<double>*) const", referenced from:
      vtable for KrigingAssemblyFunction in kriging.cpp.o
  "hmat::SimpleFunction<double>::getRow(hmat::ClusterData const*, hmat::ClusterData const*, int, void*, hmat::Vector<double>*) const", referenced from:
      vtable for KrigingAssemblyFunction in kriging.cpp.o
  "hmat::SimpleFunction<double>::assemble(hmat::ClusterData const*, hmat::ClusterData const*, hmat_block_info_t_struct const*, hmat::AllocationObserver const&) const", referenced from:
      vtable for KrigingAssemblyFunction in kriging.cpp.o
  "hmat::Function<double>::prepareBlock(hmat::ClusterData const*, hmat::ClusterData const*, hmat_block_info_t_struct*, hmat::AllocationObserver const&) const", referenced from:
      vtable for KrigingAssemblyFunction in kriging.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]: *** [kriging] Error 1
make[1]: *** [CMakeFiles/kriging.dir/all] Error 2
make: *** [all] Error 2
dbarbier commented 8 years ago

@jschueller Why did you close this issue? Do you have a workaround?

jschueller commented 8 years ago

I thought it was my fault as I did not add the cxx11 flag, still investigating, with sofiane.

dbarbier commented 8 years ago

@jschueller master should build fine now