Running Mint 21 (Ubuntu 22.04). cmake
ran fine, make
gives some c errors.
user@computer:/iLASH/build$ cmake ..
-- The C compiler identification is GNU 11.3.0
-- The CXX compiler identification is GNU 11.3.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success
-- Found Threads: TRUE
-- Found Boost: /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake (found version "1.74.0")
-- Configuring done
-- Generating done
-- Build files have been written to: /iLASH/build
user@computer:/iLASH/build$ make
[ 11%] Building CXX object CMakeFiles/ilash.dir/src/main.cpp.o
[ 22%] Building CXX object CMakeFiles/ilash.dir/src/context.cpp.o
[ 33%] Building CXX object CMakeFiles/ilash.dir/src/filereader.cpp.o
[ 44%] Building CXX object CMakeFiles/ilash.dir/src/minhasher.cpp.o
[ 55%] Building CXX object CMakeFiles/ilash.dir/src/experiment.cpp.o
In file included from /iLASH/src/experiment.cpp:7:
/iLASH/src/headers/lsh_slave.h:26:10: error: ‘shared_ptr’ in namespace ‘std’ does not name a template type
26 | std::shared_ptr<std::queue<std::unique_ptr< std::string>>> linesQ;
| ^~~~~~~~~~
/iLASH/src/headers/lsh_slave.h:19:1: note: ‘std::shared_ptr’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
18 | #include <fstream>
+++ |+#include <memory>
19 | #include <unordered_map>
/iLASH/src/headers/lsh_slave.h:27:10: error: ‘atomic’ in namespace ‘std’ does not name a template type
27 | std::atomic<bool> * runFlag; //This flag tells the program when to stop listening.
| ^~~~~~
/iLASH/src/headers/lsh_slave.h:19:1: note: ‘std::atomic’ is defined in header ‘<atomic>’; did you forget to ‘#include <atomic>’?
18 | #include <fstream>
+++ |+#include <atomic>
19 | #include <unordered_map>
/iLASH/src/headers/lsh_slave.h:29:59: error: ‘std::shared_ptr’ has not been declared
29 | LSH_Slave(Corpus *corpus, std::mutex *linesLock, std::shared_ptr<std::queue<std::unique_ptr<std::string>>>, std::atomic<bool> *);
| ^~~~~~~~~~
/iLASH/src/headers/lsh_slave.h:29:69: error: expected ‘,’ or ‘...’ before ‘<’ token
29 | Slave(Corpus *corpus, std::mutex *linesLock, std::shared_ptr<std::queue<std::unique_ptr<std::string>>>, std::atomic<bool> *);
| ^
/iLASH/src/experiment.cpp:22:57: error: ‘shared_ptr’ has not been declared
22 | void lsh_thread(Corpus *corpus, std::mutex * linesLock, shared_ptr<queue<unique_ptr<std::string>>> linesQ, atomic<bool> *runFlag){
| ^~~~~~~~~~
/iLASH/src/experiment.cpp:22:67: error: expected ‘,’ or ‘...’ before ‘<’ token
22 | sh_thread(Corpus *corpus, std::mutex * linesLock, shared_ptr<queue<unique_ptr<std::string>>> linesQ, atomic<bool> *runFlag){
| ^
/iLASH/src/experiment.cpp: In function ‘void lsh_thread(Corpus*, std::mutex*, int)’:
/iLASH/src/experiment.cpp:23:43: error: ‘linesQ’ was not declared in this scope
23 | LSH_Slave slave(corpus,linesLock,move(linesQ),runFlag);
| ^~~~~~
/iLASH/src/experiment.cpp:23:51: error: ‘runFlag’ was not declared in this scope
23 | LSH_Slave slave(corpus,linesLock,move(linesQ),runFlag);
| ^~~~~~~
/iLASH/src/experiment.cpp: In member function ‘void Experiment::read_bulk(const char*, const char*)’:
/iLASH/src/experiment.cpp:45:19: error: ‘make_shared’ was not declared in this scope
45 | auto linesQ = make_shared<queue<unique_ptr<string>>>(); //Samples will be loaded in the this queue
| ^~~~~~~~~~~
/iLASH/src/experiment.cpp:16:1: note: ‘std::make_shared’ is defined in header ‘<memory>’; did you forget to ‘#include <memory>’?
15 | #include <atomic>
+++ |+#include <memory>
16 |
/iLASH/src/experiment.cpp:45:56: error: expected primary-expression before ‘>’ token
45 | auto linesQ = make_shared<queue<unique_ptr<string>>>(); //Samples will be loaded in the this queue
| ^
/iLASH/src/experiment.cpp:45:58: error: expected primary-expression before ‘)’ token
45 | auto linesQ = make_shared<queue<unique_ptr<string>>>(); //Samples will be loaded in the this queue
| ^
make[2]: *** [CMakeFiles/ilash.dir/build.make:132: CMakeFiles/ilash.dir/src/experiment.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/ilash.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
Instructions say cmake of >= 3.5, but there's no such thing as far as I can tell: https://cmake.org/download/. Newest stable is 3.25. Installed is 3.22:
user@computer:/iLASH/build$ cmake --version
cmake version 3.22.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).