Closed spraveena closed 5 years ago
I have the same issue just now. Installation with brew directly does not work. Seems like the way the preinstalled clang(++) on OSX is the problem here (though I'm no expert on that topic).
Compiling from source does not work either.
Interestingly, when installing the llvm via brew and updating PATH the sources can be compiled successfully. Retrying to install essentia via brew still fails. Apparently brew keeps using the xcode version - and according to a short google search this behaviour cannot be changed.
Using: OSX 10.13.6 (17G65) Before installing llvm via brew (so the xcode version I guess)
➜ which clang
/usr/bin/clang
➜ clang -v
Apple LLVM version 10.0.0 (clang-1000.11.45.2)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
After installing llvm via brew:
➜ which clang
/usr/local/opt/llvm/bin/clang
➜ clang -v
clang version 7.0.0 (tags/RELEASE_700/final)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin
Edit: Installing from HEAD results in the same issue.
This looks like it's caused by https://github.com/MTG/essentia/issues/795, We'll look into getting this fix fixed in essentia as soon as possible.
Also a duplicate of #9
@tobiasschlatter Hmm, I've got no issues building master from source nor installing with brew from HEAD. Native Clang 9.1.0 on OSX 10.13.6.
@spraveena, we've done some fixes in constantq.cpp
some time ago (so, it shouldn't be related to MTG/essentia#795). You are building an old version (beta3), try building the master branch.
having the same issue, apparently building is failing at /src/algorithms/standard/constantq.cpp
native clang 10.0.0 in my case
I had a similar issue with the build failing on constantq.cpp, here's a quick (hacky) fix:
It appears the compiler is complaining about a cast from _Complex double
to double
. Note that the complex value in all the lines the compiler is complaining about is 0.0 + 0.0j
which is just 0. So you can replace 0.0 + 0.0j
with just 0.0
in these lines, and then the compilation completes successfully (at least for me).
Note that for these lines this change shouldn't change the semantics of the code because it's just a complex 0 value that's immediately cast to a double 0, but be careful about making this change to lines where the value is not 0 or where it's not immediately cast to a double, since that could change the behavior of the code in undesired ways.
EDIT: this is for building beta3, not the latest version on master.
This should be fixed now in MTG/essentia#804, building for OSX from HEAD should now work with any version of Clang or gcc
Hi, I tried installing essentia using homebrew following the instructions on the page, but was unable to do so. This is the error I'm getting:
Last 15 lines from /Users/steffen_herff/Library/Logs/Homebrew/essentia/02.waf: ../src/algorithms/standard/constantq.cpp:104:58: error: implicit conversion from '_Complex double' to 'double' is not permitted in C++ vector<complex > hammingWindow(_FFTLength, 0.0 + 0.0j);