algo-cancer / CAMMiQ

Metagenomics microbial abundance quantification
MIT License
27 stars 0 forks source link

Error installing CAMMiQ, seems related to `libprange` #4

Closed elsherbini closed 1 year ago

elsherbini commented 1 year ago

I'm having trouble installing, maybe it is an issue cloning https://github.com/jlabeit/parallel-range-lite ? OS:

Linux [hostname] 3.10.0-1160.76.1.el7.x86_64 #1 SMP Wed Aug 10 16:21:17 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
09:19:09 with je112 in joseph/projects/cammiq_20221107 at  via 🅒 base
➜ git clone https://github.com/algo-cancer/CAMMiQ
Cloning into 'CAMMiQ'...
remote: Enumerating objects: 468, done.
remote: Counting objects: 100% (177/177), done.
remote: Compressing objects: 100% (133/133), done.
remote: Total 468 (delta 120), reused 87 (delta 44), pack-reused 291
Receiving objects: 100% (468/468), 186.04 KiB | 3.72 MiB/s, done.
Resolving deltas: 100% (266/266), done.
(base)
09:19:14 with je112 in joseph/projects/cammiq_20221107 at  via 🅒 base
➜ cd CAMMiQ
(base)
09:19:16 with je112 in CAMMiQ at  on  master via 🅒 base
➜ ls
CAMMiQ-download  CAMMiQ-preprocess  CAMMiQ-simulate  install_CAMMiQ.sh  LICENSE  README.md  src
(base)
09:19:17 with je112 in CAMMiQ at  on  master via 🅒 base
➜ ./install_CAMMiQ.sh --gurobi-dir $GUROBI_HOME --gurobi-version 9.5.2
git clone https://github.com/jlabeit/parallel-divsufsort
Cloning into 'parallel-divsufsort'...
remote: Enumerating objects: 437, done.
remote: Total 437 (delta 0), reused 0 (delta 0), pack-reused 437
Receiving objects: 100% (437/437), 140.12 KiB | 3.18 MiB/s, done.
Resolving deltas: 100% (250/250), done.
git clone https://github.com/martinus/robin-hood-hashing
Cloning into 'robin-hood-hashing'...
remote: Enumerating objects: 5286, done.
remote: Counting objects: 100% (196/196), done.
remote: Compressing objects: 100% (94/94), done.
remote: Total 5286 (delta 106), reused 178 (delta 99), pack-reused 5090
Receiving objects: 100% (5286/5286), 8.99 MiB | 30.59 MiB/s, done.
Resolving deltas: 100% (3390/3390), done.
Updating files: 100% (141/141), done.
cd ./parallel-divsufsort && cmake . -DOPENMP=ON -DCILKP=OFF && make
-- The CXX compiler identification is GNU 9.5.0
-- Check for working CXX compiler: /home/je112/miniconda3/bin/x86_64-conda-linux-gnu-c++
-- Check for working CXX compiler: /home/je112/miniconda3/bin/x86_64-conda-linux-gnu-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test HAVE_GCC_FOPENMP
-- Performing Test HAVE_GCC_FOPENMP - Success
-- Performing Test HAVE_GCC_STATIC_LIBSTDC____STD=C__11__WALL__WEXTRA___DNDEBUG
-- Performing Test HAVE_GCC_STATIC_LIBSTDC____STD=C__11__WALL__WEXTRA___DNDEBUG - Success
-- Performing Test HAVE_GCC_O2__FFAST_MATH__FUNROLL_LOOPS
-- Performing Test HAVE_GCC_O2__FFAST_MATH__FUNROLL_LOOPS - Success
Submodule 'external/libprange' (git://github.com/jlabeit/parallel-range-lite.git) registered for path 'external/libprange'
Cloning into '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/external/libprange'...
fatal: unable to connect to github.com:
github.com[0: 140.82.112.4]: errno=Connection timed out

fatal: clone of 'git://github.com/jlabeit/parallel-range-lite.git' into submodule path '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/external/libprange' failed
Failed to clone 'external/libprange'. Retry scheduled
Cloning into '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/external/libprange'...
fatal: unable to connect to github.com:
github.com[0: 140.82.113.3]: errno=Connection timed out

fatal: clone of 'git://github.com/jlabeit/parallel-range-lite.git' into submodule path '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/external/libprange' failed
Failed to clone 'external/libprange' a second time, aborting
CMake Warning (dev) at external/CMakeLists.txt:9 (add_subdirectory):
  The source directory

    /n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/external/libprange

  does not contain a CMakeLists.txt file.

  CMake does not support this case but it used to work accidentally and is
  being allowed for compatibility.

  Policy CMP0014 is not set: Input directories must have CMakeLists.txt.  Run
  "cmake --help-policy CMP0014" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.
This warning is for project developers.  Use -Wno-dev to suppress it.

-- Configuring done
-- Generating done
-- Build files have been written to: /n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort
make[1]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make[2]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
Scanning dependencies of target divsufsort
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
[ 20%] Building CXX object lib/CMakeFiles/divsufsort.dir/divsufsort.cpp.o
/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:34:10: fatal error: parallel-range.h: No such file or directory
   34 | #include "parallel-range.h"
      |          ^~~~~~~~~~~~~~~~~~
compilation terminated.
make[3]: *** [lib/CMakeFiles/divsufsort.dir/build.make:59: lib/CMakeFiles/divsufsort.dir/divsufsort.cpp.o] Error 1
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make[2]: *** [CMakeFiles/Makefile2:124: lib/CMakeFiles/divsufsort.dir/all] Error 2
make[2]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make[1]: *** [Makefile:117: all] Error 2
make[1]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_20221107/CAMMiQ/src/parallel-divsufsort'
make: *** [Makefile:56: divsufsort] Error 2
g++ -o ../cammiq gsa.cpp hashtrie.cpp binaryio.cpp build.cpp query.cpp main.cpp -I./parallel-divsufsort/include -I./robin-hood-hashing/src/include -L./parallel-divsufsort/lib -L./parallel-divsufsort/external/libprange/lib -Wall -O2 -std=c++11 -DGUROBI -I/n/app/gurobi/9.5.2/linux64/include -L/n/app/gurobi/9.5.2/linux64/lib -lpthread -fopenmp -ldivsufsort -llibprange -lgurobi_g++5.2 -lgurobi95
In file included from /n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:12:0,
                 from query.cpp:17:
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:1413:48: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
                    int priority, double timeout));
                                                ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:1425:49: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
                   const char *pool, int priority));
                                                 ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:472:26: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
            double timeout));
                          ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:476:24: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
            int priority));
                        ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/usr/bin/ld: cannot find -ldivsufsort
/usr/bin/ld: cannot find -llibprange
collect2: error: ld returned 1 exit status
make: *** [Makefile:44: gurobi] Error 1
(base)
elsherbini commented 1 year ago

I believe I solved it by cloning parallel-divsufsort and parallel-range-lite manually into the correct directories, and then making sure I had intel's cilk library and a more recent version of GCC being used.

09:41:52 with je112 in joseph/projects/cammiq_take_3_20221108 at  via 🅒 base
➜ git clone https://github.com/algo-cancer/CAMMiQ
Cloning into 'CAMMiQ'...
remote: Enumerating objects: 468, done.
remote: Counting objects: 100% (177/177), done.
remote: Compressing objects: 100% (133/133), done.
remote: Total 468 (delta 120), reused 87 (delta 44), pack-reused 291
Receiving objects: 100% (468/468), 186.04 KiB | 2.66 MiB/s, done.
Resolving deltas: 100% (266/266), done.

09:42:03 with je112 in joseph/projects/cammiq_take_3_20221108 at  via 🅒 base took 2s
➜ cd CAMMiQ

09:42:08 with je112 in CAMMiQ at  on  master via 🅒 base
➜ cd src

09:42:10 with je112 in CAMMiQ/src at  on  master via 🅒 base
➜ ls
binaryio.cpp  binaryio.hpp  build.cpp  build.hpp  gsa.cpp  gsa.hpp  hashtrie.cpp  hashtrie.hpp  main.cpp  Makefile  query.cpp  query.hpp  util.hpp

09:42:11 with je112 in CAMMiQ/src at  on  master via 🅒 base
➜ git clone --recurse-submodules https://github.com/jlabeit/parallel-divsufsort.git
Cloning into 'parallel-divsufsort'...
remote: Enumerating objects: 437, done.
remote: Total 437 (delta 0), reused 0 (delta 0), pack-reused 437
Receiving objects: 100% (437/437), 140.12 KiB | 2.59 MiB/s, done.
Resolving deltas: 100% (250/250), done.
Submodule 'external/libprange' (git://github.com/jlabeit/parallel-range-lite.git) registered for path 'external/libprange'
Cloning into '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange'...
^Cwarning: Clone succeeded, but checkout failed.
You can inspect what was checked out with 'git status'
and retry with 'git restore --source=HEAD :/'

09:42:58 with je112 in CAMMiQ/src at  on  master via 🅒 base
➜ git clone https://github.com/jlabeit/parallel-divsufsort.git
Cloning into 'parallel-divsufsort'...
remote: Enumerating objects: 437, done.
remote: Total 437 (delta 0), reused 0 (delta 0), pack-reused 437
Receiving objects: 100% (437/437), 140.12 KiB | 3.05 MiB/s, done.
Resolving deltas: 100% (250/250), done.

09:43:00 with je112 in CAMMiQ/src at  on  master [?] via 🅒 base
➜ cd parallel-divsufsort
09:43:20 with je112 in parallel-divsufsort at  on  master via 🅒 base
➜ git clone https://github.com/jlabeit/parallel-range-lite /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange
Cloning into '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange'...
remote: Enumerating objects: 288, done.
remote: Total 288 (delta 0), reused 0 (delta 0), pack-reused 288
Receiving objects: 100% (288/288), 56.61 KiB | 1.49 MiB/s, done.
Resolving deltas: 100% (166/166), done.

➜ cd ..

09:43:30 with je112 in CAMMiQ/src at  on  master [?] via 🅒 base
➜ cd ..

09:43:31 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ ls
CAMMiQ-download  CAMMiQ-preprocess  CAMMiQ-simulate  install_CAMMiQ.sh  LICENSE  README.md  src

09:43:32 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ module load intel/2016

09:43:41 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ module load gurobi/9.5.2.lua

Ok, now I try running the install_CAMMiQ.sh script:


09:43:47 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ ./install_CAMMiQ.sh --gurobi-dir $GUROBI_HOME --gurobi-version 9.5.2
Destination path 'parallel-divsufsort' already exists.
git clone https://github.com/martinus/robin-hood-hashing
Cloning into 'robin-hood-hashing'...
remote: Enumerating objects: 5286, done.
remote: Counting objects: 100% (196/196), done.
remote: Compressing objects: 100% (94/94), done.
remote: Total 5286 (delta 106), reused 178 (delta 99), pack-reused 5090
Receiving objects: 100% (5286/5286), 8.99 MiB | 25.72 MiB/s, done.
Resolving deltas: 100% (3390/3390), done.
Updating files: 100% (141/141), done.
cd ./parallel-divsufsort && cmake . -DOPENMP=ON -DCILKP=OFF && make
-- The CXX compiler identification is GNU 9.5.0
-- Check for working CXX compiler: /home/je112/miniconda3/bin/x86_64-conda-linux-gnu-c++
-- Check for working CXX compiler: /home/je112/miniconda3/bin/x86_64-conda-linux-gnu-c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Performing Test HAVE_GCC_FOPENMP
-- Performing Test HAVE_GCC_FOPENMP - Success
-- Performing Test HAVE_GCC_STATIC_LIBSTDC____STD=C__11__WALL__WEXTRA___DNDEBUG
-- Performing Test HAVE_GCC_STATIC_LIBSTDC____STD=C__11__WALL__WEXTRA___DNDEBUG - Success
-- Performing Test HAVE_GCC_O2__FFAST_MATH__FUNROLL_LOOPS
-- Performing Test HAVE_GCC_O2__FFAST_MATH__FUNROLL_LOOPS - Success
-- Configuring done
-- Generating done
-- Build files have been written to: /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort
make[1]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[2]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
Scanning dependencies of target libprange
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 14%] Building CXX object external/libprange/lib/CMakeFiles/libprange.dir/parallel-range.cpp.o
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In member function 'bool segment_info<saidx_t, BLOCK_SIZE>::next_one(int64_t&) const':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:256:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
  256 |   if (b+1 < num_blocks)
      |   ^~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:258:4: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'if'
  258 |    return (saidx_t)pos < n;
      |    ^~~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In instantiation of 'saidx_t pack_text(saidx_t*, saidx_t) [with saidx_t = long unsigned int; saidx_t BLOCK_SIZE = 131072]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:457:28:   required from 'void paralleltrsort(saidx_t*, saidx_t*, saidx_t) [with saidx_t = long unsigned int]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:476:27:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:429:11: warning: comparison of integer expressions of different signedness: 'int64_t' {aka 'long int'} and 'long unsigned int' [-Wsign-compare]
  429 |   if (end < n)
      |       ~~~~^~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In instantiation of 'void segment_info<saidx_t, BLOCK_SIZE>::update_names_1() [with saidx_t = unsigned int; int BLOCK_SIZE = 32768]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:362:3:   required from 'void segment_info<saidx_t, BLOCK_SIZE>::update_segments(saidx_t) [with saidx_t = unsigned int; int BLOCK_SIZE = 32768]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:463:2:   required from 'void paralleltrsort(saidx_t*, saidx_t*, saidx_t) [with saidx_t = unsigned int]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:473:27:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:371:14: warning: unused parameter 's' [-Wunused-parameter]
  371 |      saidx_t s, saidx_t e) {
      |      ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:371:25: warning: unused parameter 'e' [-Wunused-parameter]
  371 |      saidx_t s, saidx_t e) {
      |                 ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In instantiation of 'void segment_info<saidx_t, BLOCK_SIZE>::update_names_2() [with saidx_t = unsigned int; int BLOCK_SIZE = 32768]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:365:3:   required from 'void segment_info<saidx_t, BLOCK_SIZE>::update_segments(saidx_t) [with saidx_t = unsigned int; int BLOCK_SIZE = 32768]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:463:2:   required from 'void paralleltrsort(saidx_t*, saidx_t*, saidx_t) [with saidx_t = unsigned int]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:473:27:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:380:25: warning: unused parameter 'e' [-Wunused-parameter]
  380 |      saidx_t s, saidx_t e) {
      |                 ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In instantiation of 'void segment_info<saidx_t, BLOCK_SIZE>::update_names_1() [with saidx_t = long unsigned int; int BLOCK_SIZE = 32768]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:362:3:   required from 'void segment_info<saidx_t, BLOCK_SIZE>::update_segments(saidx_t) [with saidx_t = long unsigned int; int BLOCK_SIZE = 32768]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:463:2:   required from 'void paralleltrsort(saidx_t*, saidx_t*, saidx_t) [with saidx_t = long unsigned int]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:476:27:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:371:14: warning: unused parameter 's' [-Wunused-parameter]
  371 |      saidx_t s, saidx_t e) {
      |      ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:371:25: warning: unused parameter 'e' [-Wunused-parameter]
  371 |      saidx_t s, saidx_t e) {
      |                 ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp: In instantiation of 'void segment_info<saidx_t, BLOCK_SIZE>::update_names_2() [with saidx_t = long unsigned int; int BLOCK_SIZE = 32768]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:365:3:   required from 'void segment_info<saidx_t, BLOCK_SIZE>::update_segments(saidx_t) [with saidx_t = long unsigned int; int BLOCK_SIZE = 32768]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:463:2:   required from 'void paralleltrsort(saidx_t*, saidx_t*, saidx_t) [with saidx_t = long unsigned int]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:476:27:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:380:25: warning: unused parameter 'e' [-Wunused-parameter]
  380 |      saidx_t s, saidx_t e) {
      |                 ~~~~~~~~^
In file included from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/sequence.hpp:29,
                 from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/blockRadixSort.hpp:28,
                 from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:27:
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parutils.hpp: At global scope:
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parutils.hpp:69:12: warning: 'int utils::logUpLong(long unsigned int)' defined but not used [-Wunused-function]
   69 | static int logUpLong(unsigned long i) {
      |            ^~~~~~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parutils.hpp:62:12: warning: 'int utils::logUp(unsigned int)' defined but not used [-Wunused-function]
   62 | static int logUp(unsigned int i) {
      |            ^~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parutils.hpp:46:13: warning: 'void utils::myAssert(int, std::string)' defined but not used [-Wunused-function]
   46 | static void myAssert(int cond, std::string s) {
      |             ^~~~~~~~
In file included from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/sequence.hpp:28,
                 from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/blockRadixSort.hpp:28,
                 from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel-range.cpp:27:
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel.hpp:59:13: warning: 'void setWorkers(int)' defined but not used [-Wunused-function]
   59 | static void setWorkers(int n) { omp_set_num_threads(n); }
      |             ^~~~~~~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/lib/parallel.hpp:58:12: warning: 'int getWorkers()' defined but not used [-Wunused-function]
   58 | static int getWorkers() { return omp_get_max_threads(); }
      |            ^~~~~~~~~~
Linking CXX static library liblibprange.a
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 14%] Built target libprange
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
Scanning dependencies of target PRangeLiteDemo
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 28%] Building CXX object external/libprange/demo/CMakeFiles/PRangeLiteDemo.dir/main.cpp.o
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/demo/main.cpp: In function 'int main(int, char**)':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/external/libprange/demo/main.cpp:33:21: warning: comparison of integer expressions of different signedness: 'int' and 'uint_t' {aka 'long unsigned int'} [-Wsign-compare]
   33 |   for (int i = 0; i < size; ++i) {
      |                   ~~^~~~~~
Linking CXX executable PRangeLiteDemo
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 28%] Built target PRangeLiteDemo
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
Scanning dependencies of target divsufsort
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 42%] Building CXX object lib/CMakeFiles/divsufsort.dir/divsufsort.cpp.o
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp: In instantiation of 'void initBStarBuckets(const sauchar_t*, saidx_t*, saidx_t*, saidx_t, saidx_t, saidx_t*) [with saidx_t = int; sauchar_t = unsigned char]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:226:21:   required from 'saidx_t sort_typeBstar(const sauchar_t*, saidx_t*, saidx_t*, saidx_t*, saidx_t) [with saidx_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:737:23:   required from 'saint_t divsufsort(const sauchar_t*, saidx_t*, saidx_t) [with saidx_t = int; saint_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:787:37:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:61:83: warning: unused parameter 'n' [-Wunused-parameter]
   61 | void initBStarBuckets(const sauchar_t *T, saidx_t *SA, saidx_t* bucket_B, saidx_t n, saidx_t m, saidx_t* PAb) {
      |                                                                           ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp: In instantiation of 'void fillBBSeq(saidx_t*, saidx_t*, saidx_t, sauchar_t, const sauchar_t*, cached_bucket_writer<saidx_t>&) [with saidx_t = int; sauchar_t = unsigned char]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:570:17:   required from 'void construct_SA(const sauchar_t*, saidx_t*, saidx_t*, saidx_t*, saidx_t, saidx_t) [with saidx_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:738:17:   required from 'saint_t divsufsort(const sauchar_t*, saidx_t*, saidx_t) [with saidx_t = int; saint_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:787:37:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:444:72: warning: unused parameter 'c1' [-Wunused-parameter]
  444 | void fillBBSeq (saidx_t* start, saidx_t* end, saidx_t block, sauchar_t c1,
      |                                                              ~~~~~~~~~~^~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp: In instantiation of 'void initBStarBuckets(const sauchar_t*, saidx_t*, saidx_t*, saidx_t, saidx_t, saidx_t*) [with saidx_t = long int; sauchar_t = unsigned char]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:226:21:   required from 'saidx_t sort_typeBstar(const sauchar_t*, saidx_t*, saidx_t*, saidx_t*, saidx_t) [with saidx_t = long int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:737:23:   required from 'saint_t divsufsort(const sauchar_t*, saidx_t*, saidx_t) [with saidx_t = long int; saint_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:791:37:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:61:83: warning: unused parameter 'n' [-Wunused-parameter]
   61 | void initBStarBuckets(const sauchar_t *T, saidx_t *SA, saidx_t* bucket_B, saidx_t n, saidx_t m, saidx_t* PAb) {
      |                                                                           ~~~~~~~~^
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp: In instantiation of 'void fillBBSeq(saidx_t*, saidx_t*, saidx_t, sauchar_t, const sauchar_t*, cached_bucket_writer<saidx_t>&) [with saidx_t = long int; sauchar_t = unsigned char]':
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:570:17:   required from 'void construct_SA(const sauchar_t*, saidx_t*, saidx_t*, saidx_t*, saidx_t, saidx_t) [with saidx_t = long int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:738:17:   required from 'saint_t divsufsort(const sauchar_t*, saidx_t*, saidx_t) [with saidx_t = long int; saint_t = int; sauchar_t = unsigned char]'
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:791:37:   required from here
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:444:72: warning: unused parameter 'c1' [-Wunused-parameter]
  444 | void fillBBSeq (saidx_t* start, saidx_t* end, saidx_t block, sauchar_t c1,
      |                                                              ~~~~~~~~~~^~
In file included from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/sequence.h:28,
                 from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:30:
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/utils.h:69:12: warning: 'int utils::logUpLong(long unsigned int)' defined but not used [-Wunused-function]
   69 | static int logUpLong(unsigned long i) {
      |            ^~~~~~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/utils.h:62:12: warning: 'int utils::logUp(unsigned int)' defined but not used [-Wunused-function]
   62 | static int logUp(unsigned int i) {
      |            ^~~~~
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/utils.h:46:13: warning: 'void utils::myAssert(int, std::string)' defined but not used [-Wunused-function]
   46 | static void myAssert(int cond, std::string s) {
      |             ^~~~~~~~
In file included from /n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/divsufsort.cpp:29:
/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort/lib/parallel.hpp:59:13: warning: 'void setWorkers(int)' defined but not used [-Wunused-function]
   59 | static void setWorkers(int n) { omp_set_num_threads(n); }
      |             ^~~~~~~~~~
[ 57%] Building CXX object lib/CMakeFiles/divsufsort.dir/utils.cpp.o
[ 71%] Building CXX object lib/CMakeFiles/divsufsort.dir/trsort.cpp.o
[ 85%] Building CXX object lib/CMakeFiles/divsufsort.dir/sssort.cpp.o
Linking CXX static library libdivsufsort.a
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[ 85%] Built target divsufsort
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
Scanning dependencies of target timing
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[3]: Entering directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[100%] Building CXX object examples/CMakeFiles/timing.dir/timing.cpp.o
Linking CXX executable timing
make[3]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
[100%] Built target timing
make[2]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'
make[1]: Leaving directory '/n/groups/kwon/joseph/projects/cammiq_take_3_20221108/CAMMiQ/src/parallel-divsufsort'

g++ -o ../cammiq gsa.cpp hashtrie.cpp binaryio.cpp build.cpp query.cpp main.cpp -I./parallel-divsufsort/include -I./robin-hood-hashing/src/include -L./parallel-divsufsort/lib -L./parallel-divsufsort/external/libprange/lib -Wall -O2 -std=c++11 -DGUROBI -I/n/app/gurobi/9.5.2/linux64/include -L/n/app/gurobi/9.5.2/linux64/lib -lpthread -fopenmp -ldivsufsort -llibprange -lgurobi_g++5.2 -lgurobi95
In file included from /n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:12:0,
                 from query.cpp:17:
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:1413:48: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
                    int priority, double timeout));
                                                ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:1425:49: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
                   const char *pool, int priority));
                                                 ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:472:26: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
            double timeout));
                          ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c++.h:476:24: warning: ‘deprecated’ attribute directive ignored [-Wattributes]
            int priority));
                        ^
/n/app/gurobi/9.5.2/linux64/include/gurobi_c.h:32:53: note: in definition of macro ‘GRB_DEPRECATED’
 #  define GRB_DEPRECATED(WHY,X) [[deprecated(WHY)]] X
                                                     ^
./parallel-divsufsort/external/libprange/lib/liblibprange.a(parallel-range.cpp.o): In function `void paralleltrsort<unsigned long>(unsigned long*, unsigned long*, unsigned long)':
parallel-range.cpp:(.text._Z14paralleltrsortImEvPT_S1_S0_[_Z14paralleltrsortImEvPT_S1_S0_]+0xdfc): undefined reference to `__cxa_throw_bad_array_new_length'
parallel-range.cpp:(.text._Z14paralleltrsortImEvPT_S1_S0_[_Z14paralleltrsortImEvPT_S1_S0_]+0xe02): undefined reference to `__cxa_throw_bad_array_new_length'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Env.o): In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char const*>(char const*, char const*, std::forward_iterator_tag) [clone .isra.19]':
Env.cpp:(.text+0x73): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Env.o): In function `GRBEnv::getParamInfo(GRB_StringParam, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&)':
Env.cpp:(.text+0x1305): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
Env.cpp:(.text+0x1371): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Model.o): In function `void std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_construct<char*>(char*, char*, std::forward_iterator_tag) [clone .isra.119]':
Model.cpp:(.text+0x73): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Model.o): In function `GRBModel::get[abi:cxx11](GRB_StringAttr, GRBVar const*, int)':
Model.cpp:(.text+0x8522): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Model.o): In function `GRBModel::get[abi:cxx11](GRB_StringAttr, GRBConstr const*, int)':
Model.cpp:(.text+0x9572): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Model.o): In function `GRBModel::get[abi:cxx11](GRB_StringAttr, GRBQConstr const*, int)':
Model.cpp:(.text+0xa5c2): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Model.o): In function `GRBModel::get[abi:cxx11](GRB_StringAttr, GRBGenConstr const*, int)':
Model.cpp:(.text+0xb122): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Var.o): In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.15]':
Var.cpp:(.text+0x63): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Var.o): In function `GRBVar::get[abi:cxx11](GRB_StringAttr) const':
Var.cpp:(.text+0x63b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Constr.o): In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.15]':
Constr.cpp:(.text+0x63): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Constr.o): In function `GRBConstr::get[abi:cxx11](GRB_StringAttr) const':
Constr.cpp:(.text+0x63b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(LinExpr.o): In function `GRBLinExpr::remove(int)':
LinExpr.cpp:(.text+0x992): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(QuadExpr.o):QuadExpr.cpp:(.text+0x1f12): more undefined references to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)' follow
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Exception.o): In function `GRBException::GRBException(int)':
Exception.cpp:(.text+0x2c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_replace(unsigned long, unsigned long, char const*, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Exception.o): In function `GRBException::GRBException(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, int)':
Exception.cpp:(.text+0x6e): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_assign(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Exception.o): In function `GRBException::getMessage[abi:cxx11]() const':
Exception.cpp:(.text+0x10b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Callback.o): In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) [clone .isra.27]':
Callback.cpp:(.text+0x63): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Callback.o): In function `GRBCallback::getStringInfo[abi:cxx11](int) const':
Callback.cpp:(.text+0x5f3): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Callback.o): In function `GRBCallback::getSolution(GRBVar const*, int)':
Callback.cpp:(.text+0xa58): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Callback.o): In function `GRBCallback::getNodeRel(GRBVar const*, int)':
Callback.cpp:(.text+0xe8a): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)'
/n/app/gurobi/9.5.2/linux64/lib/libgurobi_g++5.2.a(Callback.o):Callback.cpp:(.text+0x1252): more undefined references to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_create(unsigned long&, unsigned long)' follow
/tmp/cc1aJJtS.o: In function `FqReader::runILPsc_gurobi(unsigned long, unsigned int, unsigned int)':
query.cpp:(.text+0x6384): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x6506): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x66fa): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x6921): undefined reference to `GRBModel::set(std::string const&, std::string const&)'
query.cpp:(.text+0x699d): undefined reference to `GRBModel::set(std::string const&, std::string const&)'
query.cpp:(.text+0x6dde): undefined reference to `GRBException::getMessage() const'
/tmp/cc1aJJtS.o: In function `FqReader::runILP_gurobi(unsigned long, int, unsigned int, double, double, double, double)':
query.cpp:(.text+0x8662): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x876d): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x8905): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x89e5): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0x9879): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
/tmp/cc1aJJtS.o:query.cpp:(.text+0x997c): more undefined references to `GRBModel::addConstr(GRBTempConstr const&, std::string)' follow
/tmp/cc1aJJtS.o: In function `FqReader::runILP_gurobi(unsigned long, int, unsigned int, double, double, double, double)':
query.cpp:(.text+0xa4e1): undefined reference to `GRBModel::set(std::string const&, std::string const&)'
query.cpp:(.text+0xa557): undefined reference to `GRBModel::set(std::string const&, std::string const&)'
query.cpp:(.text+0xa76e): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0xa85b): undefined reference to `GRBModel::addConstr(GRBTempConstr const&, std::string)'
query.cpp:(.text+0xb121): undefined reference to `GRBException::getMessage() const'
collect2: error: ld returned 1 exit status
make: *** [Makefile:44: gurobi] Error 1

It turned out I also needed to use a more recent gcc, I was using gcc 6.2.0 but loading gcc/9.2.0 got it to install:


09:59:59 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ module load gcc/9.2.0

10:00:42 with je112 in CAMMiQ at  on  master [?] via 🅒 base
➜ ./install_CAMMiQ.sh --gurobi-dir $GUROBI_HOME --gurobi-version 9.5.2
Destination path 'parallel-divsufsort' already exists.
Destination path 'robin-hood-hashing' already exists.
Library 'libdivsufsort.a' already exists.
g++ -o ../cammiq gsa.cpp hashtrie.cpp binaryio.cpp build.cpp query.cpp main.cpp -I./parallel-divsufsort/include -I./robin-hood-hashing/src/include -L./parallel-divsufsort/lib -L./parallel-divsufsort/external/libprange/lib -Wall -O2 -std=c++11 -DGUROBI -I/n/app/gurobi/9.5.2/linux64/include -L/n/app/gurobi/9.5.2/linux64/lib -lpthread -fopenmp -ldivsufsort -llibprange -lgurobi_g++5.2 -lgurobi95

10:00:54 with je112 in CAMMiQ at  on  master [?] via 🅒 base took 9s
➜ ls
cammiq  CAMMiQ-download  CAMMiQ-preprocess  CAMMiQ-simulate  install_CAMMiQ.sh  LICENSE  README.md  src