uni-halle / gerbil

A fast and memory-efficient k-mer counter with GPU-support
MIT License
34 stars 14 forks source link

Compile error when calling Gerbil "make" #17

Open mhorlacher opened 4 years ago

mhorlacher commented 4 years ago

My cmake .. output:

-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /home/icb/marc.horlacher/miniconda3/envs/gerbil/bin/x86_64-conda_cos6-linux-gnu-cc
-- Check for working C compiler: /home/icb/marc.horlacher/miniconda3/envs/gerbil/bin/x86_64-conda_cos6-linux-gnu-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: /home/icb/marc.horlacher/miniconda3/envs/gerbil/bin/x86_64-conda_cos6-linux-gnu-c++
-- Check for working CXX compiler: /home/icb/marc.horlacher/miniconda3/envs/gerbil/bin/x86_64-conda_cos6-linux-gnu-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Boost  found.
-- Found Boost components:
   system;thread;filesystem;regex
-- Found BZip2: /usr/lib64/libbz2.so (found version "1.0.6") 
-- Looking for BZ2_bzCompressInit
-- Looking for BZ2_bzCompressInit - not found
-- Found ZLIB: /usr/lib64/libz.so (found version "1.2.8") 
-- Found Threads: TRUE  
CUDA_TOOLKIT_ROOT_DIR not found or specified
-- Could NOT find CUDA (missing: CUDA_TOOLKIT_ROOT_DIR CUDA_NVCC_EXECUTABLE CUDA_INCLUDE_DIRS CUDA_CUDART_LIBRARY) 
-- Build type: Release
-- Configuring done
CMake Warning at CMakeLists.txt:100 (add_executable):
  Cannot generate a safe runtime search path for target gerbil because files
  in some directories may conflict with libraries in implicit directories:

    runtime library [libz.so.1] in /usr/lib64 may be hidden by files in:
      /home/icb/marc.horlacher/miniconda3/envs/gerbil/lib

  Some of these libraries may not be found correctly.

-- Generating done
-- Build files have been written to: /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/build

And my make output:

Scanning dependencies of target toFasta
[  5%] Building CXX object CMakeFiles/toFasta.dir/src/gerbil/toFasta.cpp.o
[ 11%] Linking CXX executable toFasta
[ 11%] Built target toFasta
Scanning dependencies of target gerbil
[ 17%] Building CXX object CMakeFiles/gerbil.dir/src/gerbil/Application.cpp.o
In file included from /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/types.h:27:0,
                 from /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/SyncQueue.h:25,
                 from /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/FastReader.h:26,
                 from /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/Application.h:26,
                 from /home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/Application.cpp:8:
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:50:2: error: '__syscall_slong_t' does not name a type
  __syscall_slong_t _nsec;
  ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In constructor 'gerbil::StopWatch::StopWatch(clockid_t)':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:54:17: error: class 'gerbil::StopWatch' does not have any field named '_nsec'
    _mode(mode), _nsec(0), _sec(0) {
                 ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In constructor 'gerbil::StopWatch::StopWatch()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:57:27: error: class 'gerbil::StopWatch' does not have any field named '_nsec'
    _mode(CLOCK_REALTIME), _nsec(0), _sec(0) {
                           ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StopWatch::start()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:65:3: error: '_nsec' was not declared in this scope
   _nsec = 0;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StopWatch::stop()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:70:3: error: '_nsec' was not declared in this scope
   _nsec += _end.tv_nsec - _start.tv_nsec;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StopWatch::hold()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:75:3: error: '_nsec' was not declared in this scope
   _nsec += _end.tv_nsec - _start.tv_nsec;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'double gerbil::StopWatch::get_s()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:82:27: error: '_nsec' was not declared in this scope
   return _sec + ((double) _nsec / 1000000000);
                           ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: At global scope:
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:100:2: error: '__syscall_slong_t' does not name a type
  __syscall_slong_t _nsec;
  ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In constructor 'gerbil::StackStopWatch::StackStopWatch(clockid_t)':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:105:17: error: class 'gerbil::StackStopWatch' does not have any field named '_nsec'
    _mode(mode), _nsec(0), _sec(0), _inProgress(false) {
                 ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In constructor 'gerbil::StackStopWatch::StackStopWatch()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:108:27: error: class 'gerbil::StackStopWatch' does not have any field named '_nsec'
    _mode(CLOCK_REALTIME), _nsec(0), _sec(0), _inProgress(false) {
                           ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StackStopWatch::start()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:114:3: error: '_nsec' was not declared in this scope
   _nsec = 0;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StackStopWatch::stop()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:121:3: error: '_nsec' was not declared in this scope
   _nsec += _end.tv_nsec - _start.tv_nsec;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'void gerbil::StackStopWatch::hold()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:128:3: error: '_nsec' was not declared in this scope
   _nsec += _end.tv_nsec - _start.tv_nsec;
   ^
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h: In member function 'double gerbil::StackStopWatch::get_s()':
/home/icb/marc.horlacher/projects/DeepCLIP/software/gerbil/src/gerbil/../../include/gerbil/debug.h:136:27: error: '_nsec' was not declared in this scope
   return _sec + ((double) _nsec / 1000000000);
                           ^
make[2]: *** [CMakeFiles/gerbil.dir/build.make:63: CMakeFiles/gerbil.dir/src/gerbil/Application.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/gerbil.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

What's going wrong here?

srechner commented 4 years ago

In my opinion, the problems starts in the cmake output:

  Cannot generate a safe runtime search path for target gerbil because files
  in some directories may conflict with libraries in implicit directories:

    runtime library [libz.so.1] in /usr/lib64 may be hidden by files in:
      /home/icb/marc.horlacher/miniconda3/envs/gerbil/lib

  Some of these libraries may not be found correctly.

It seems that the directory minconda3/envs/gerbil/lib is hiding essential system libraries, which can afterwards not be found during the linking process.

Unfortunately, I do not know how to fix this problem as I have no experience with conda environments. May this thread be helpful?

mhorlacher commented 4 years ago

Thanks for taking your time @srechner , masking the system paths was intentional as I'm not super-user on our servers and couldn't install the required libraries otherwise. I still couldn't figure out how to solve the above problem, it probably due to the server running on Redhat..

Anyways, I've managed to statically compile Gerbil locally and can now use it on our servers without any problems!