Macaulay2 / Macaulay2-web-site

The Macaulay2 web site
Other
5 stars 6 forks source link

Error during compilation #18

Closed signedout closed 3 years ago

signedout commented 3 years ago

Hi,

I'm running Manjaro Linux, up-to-date. I tried installing M2 from the AUR (Arch User Repository) but it failed. I didn't note down the error, but I decided to compile from scratch (latest version pulled from git), thinking it may work. This time, it failed during "make", but I noted down the error. Here it is:

making TAGS file CC error.c CC table.c CC exptable.c CC complex.c CXX myalloc.cpp CXX matrix-ncbasis.cpp CXX M2FreeAlgebraQuotient.cpp In file included from M2FreeAlgebraQuotient.cpp:11: stdinc-m2.hpp:6:2: warning: #warning TODO: remove e/stdinc-m2.hpp [-Wcpp] 6 | #warning TODO: remove e/stdinc-m2.hpp | ^~~ CXX M2FreeAlgebra.cpp CXX VectorArithmetic.cpp In file included from VectorArithmetic.cpp:1: VectorArithmetic.hpp:108:40: error: ‘tbb’ has not been declared 108 | tbb::queuing_mutex& lock) const = 0; | ^~~ VectorArithmetic.hpp:108:58: error: expected ‘,’ or ‘...’ before ‘&’ token 108 | tbb::queuing_mutex& lock) const = 0; | ^ VectorArithmetic.hpp:116:40: error: ‘tbb’ has not been declared 116 | tbb::null_mutex& lock) const = 0; | ^~~ VectorArithmetic.hpp:116:55: error: expected ‘,’ or ‘...’ before ‘&’ token 116 | tbb::null_mutex& lock) const = 0; | ^ VectorArithmetic.hpp:110:16: error: ‘virtual void AbstractVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ cannot be overloaded with ‘virtual void AbstractVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ 110 | virtual void safeDenseRowToSparseRow(DenseCoeffVector& dense, | ^~~~~~~ VectorArithmetic.hpp:102:16: note: previous declaration ‘virtual void AbstractVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ 102 | virtual void safeDenseRowToSparseRow(DenseCoeffVector& dense, | ^~~~~~~ VectorArithmetic.cpp:186:32: error: ‘tbb’ has not been declared 186 | tbb::queuing_mutex& lock) const override | ^~~ VectorArithmetic.cpp:186:50: error: expected ‘,’ or ‘...’ before ‘&’ token 186 | tbb::queuing_mutex& lock) const override | ^ VectorArithmetic.cpp:203:32: error: ‘tbb’ has not been declared 203 | tbb::null_mutex& noLock) const override | ^~~ VectorArithmetic.cpp:203:47: error: expected ‘,’ or ‘...’ before ‘&’ token 203 | tbb::null_mutex& noLock) const override | ^ VectorArithmetic.cpp:197:8: error: ‘void ConcreteVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ cannot be overloaded with ‘void ConcreteVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ 197 | void safeDenseRowToSparseRow(DenseCoeffVector& dense, | ^~~~~~~ VectorArithmetic.cpp:180:8: note: previous declaration ‘void ConcreteVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’ 180 | void safeDenseRowToSparseRow(DenseCoeffVector& dense, | ^~~~~~~ VectorArithmetic.cpp: In member function ‘void ConcreteVectorArithmetic::denseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&) const’: VectorArithmetic.cpp:170:5: error: ‘tbb’ has not been declared 170 | tbb::null_mutex noLock; | ^~~ VectorArithmetic.cpp:171:32: error: ‘tbb’ was not declared in this scope 171 | generalDenseRowToSparseRow(dense, | ^~~ VectorArithmetic.cpp:171:5: error: parse error in template argument list 171 | generalDenseRowToSparseRow(dense, | ^~~~~~~~~~~ VectorArithmetic.cpp:177:49: error: ‘noLock’ was not declared in this scope 177 | noLock); | ^~ VectorArithmetic.cpp: In member function ‘void ConcreteVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’: VectorArithmetic.cpp:188:32: error: ‘tbb’ was not declared in this scope 188 | generalDenseRowToSparseRow(dense, | ^~~ VectorArithmetic.cpp:188:5: error: parse error in template argument list 188 | generalDenseRowToSparseRow(dense, | ^~~~~~~~~~ VectorArithmetic.cpp:194:52: error: ‘lock’ was not declared in this scope; did you mean ‘lockf’? 194 | lock); | ^~~~ | lockf VectorArithmetic.cpp: In member function ‘void ConcreteVectorArithmetic::safeDenseRowToSparseRow(DenseCoeffVector&, CoeffVector&, Range&, int, int, MemoryBlock&, int) const’: VectorArithmetic.cpp:205:32: error: ‘tbb’ was not declared in this scope 205 | generalDenseRowToSparseRow(dense, | ^~~ VectorArithmetic.cpp:205:5: error: parse error in template argument list 205 | generalDenseRowToSparseRow(dense, | ^~~~~~~~~~~ VectorArithmetic.cpp:211:49: error: ‘noLock’ was not declared in this scope 211 | noLock); | ^~ make[2]: ** [Makefile.common:33: VectorArithmetic.o] Error 1 make[2]: Leaving directory '/run/media/2020_3TB/M2/M2/Macaulay2/e' make[1]: [Makefile:14: all-in-e] Error 2 make[1]: Leaving directory '/run/media/2020_3TB/M2/M2/Macaulay2' make: *** [GNUmakefile:221: all-in-Macaulay2] Error 2 make: Leaving directory '/run/media/2020_3TB/M2/M2'

DanGrayson commented 3 years ago

The library "tbb" needs to be installed first. Apparently the configure script doesn't yet signal an error if it's not there.

If further problems occur, feel free to report them, but as an issue on the M2 repository.

signedout commented 3 years ago

Thank you, that was all that was needed for it to work. Also, sorry for posting this in the wrong forum!