Rcomian / jsfx-vcv

Run JSFX scripts as modules inside VCV Rack
GNU General Public License v3.0
8 stars 1 forks source link

build fail on Linux #1

Closed davephillips closed 6 years ago

davephillips commented 6 years ago

Fedora 23 Linux Rack 0.6.2b (from source) GCC 5.3.1

Greetings ! I love the idea for this module, but alas, my build attempt fails here:

make dep ... /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp: In member function ‘void JsusFxPathLibrary_Basic::addSearchPath(const string&)’: /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:351:12: error: ‘const string {aka const class std::cxx11::basic_string}’ has no member named ‘back’ if ( path.back() == '/' || path.back() == '\' ) ^ /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:351:34: error: ‘const string {aka const class std::cxx11::basic_string}’ has no member named ‘back’ if ( path.back() == '/' || path.back() == '\' ) ^ /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp: In static member function ‘static bool JsusFxPathLibrary_Basic::fileExists(const string&)’: /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:358:27: error: no matching function for call to ‘std::basic_ifstream::basic_ifstream(const string&)’ std::ifstream is(filename); ^ In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:495:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits; std::ios_base::openmode = std::_Ios_Openmode] basic_ifstream(const char s, ios_base::openmode mode = ios_base::in) ^ /usr/include/c++/5.3.1/fstream:495:7: note: no known conversion for argument 1 from ‘const string {aka const std::cxx11::basic_string}’ to ‘const char*’ In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:481:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits] basic_ifstream() : istream_type(), _M_filebuf() ^ /usr/include/c++/5.3.1/fstream:481:7: note: candidate expects 0 arguments, 1 provided In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:455:11: note: candidate: std::basic_ifstream::basic_ifstream(const std::basic_ifstream&) class basic_ifstream : public basic_istream<_CharT, _Traits> ^ /usr/include/c++/5.3.1/fstream:455:11: note: no known conversion for argument 1 from ‘const string {aka const std::cxx11::basic_string}’ to ‘const std::basic_ifstream&’ /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp: In member function ‘virtual bool JsusFxPathLibrary_Basic::resolveImportPath(const string&, const string&, std::cxx11::string&)’: /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:372:35: warning: range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11 for ( std::string & searchPath : searchPaths ) { ^ /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp: In member function ‘virtual std::istream JsusFxPathLibrary_Basic::open(const string&)’: /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:391:48: error: no matching function for call to ‘std::basic_ifstream::basic_ifstream(const string&)’ std::ifstream stream = new std::ifstream(path); ^ In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:495:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream(const char, std::ios_base::openmode) [with _CharT = char; _Traits = std::char_traits; std::ios_base::openmode = std::_Ios_Openmode] basic_ifstream(const char s, ios_base::openmode __mode = ios_base::in) ^ /usr/include/c++/5.3.1/fstream:495:7: note: no known conversion for argument 1 from ‘const string {aka const std::cxx11::basic_string}’ to ‘const char*’ In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:481:7: note: candidate: std::basic_ifstream<_CharT, _Traits>::basic_ifstream() [with _CharT = char; _Traits = std::char_traits] basic_ifstream() : istream_type(), _M_filebuf() ^ /usr/include/c++/5.3.1/fstream:481:7: note: candidate expects 0 arguments, 1 provided In file included from /home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b/src/jsusfx.cpp:47:0: /usr/include/c++/5.3.1/fstream:455:11: note: candidate: std::basic_ifstream::basic_ifstream(const std::basic_ifstream&) class basic_ifstream : public basic_istream<_CharT, _Traits> ^ /usr/include/c++/5.3.1/fstream:455:11: note: no known conversion for argument 1 from ‘const string {aka const std::cxx11::basic_string}’ to ‘const std::basic_ifstream&’ CMakeFiles/jsusfx.dir/build.make:66: recipe for target 'CMakeFiles/jsusfx.dir/jsusfx.cpp.o' failed make[3]: [CMakeFiles/jsusfx.dir/jsusfx.cpp.o] Error 1 make[3]: Leaving directory '/home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b' CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/jsusfx.dir/all' failed make[2]: [CMakeFiles/jsusfx.dir/all] Error 2 make[2]: Leaving directory '/home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b' Makefile:83: recipe for target 'all' failed make[1]: [all] Error 2 make[1]: Leaving directory '/home/dlphilp/src/Rack-062/plugins/jsfx-vcv/dep/jsusfx-0.4.0b1b' Makefile:30: recipe for target 'lib/jsusfx.a' failed make: [lib/jsusfx.a] Error 2

It seems that it wants -std=cxx11 somewhere but I'm not sure where that will go in a cmake system. Any suggestions are vastly appreciated. :)

Rcomian commented 6 years ago

Yeah building the jsusfx code is pretty tricky, I've found. It might be worth cloning that code directly and trying to get it to build: https://github.com/asb2m10/jsusfx, then if you can get that environment right, it should build within the module project.

I only cloned the repository to get access to slightly later features than were in their last release and to add the -fPIC flag to jsusfx/src/CMakeLists.txt. If you need to add extra flags that might be the place to do so. I'm guessing tho.

(I didn't write the actual engine, that would have been way too much work :P) If it helps at all, I can tell you what versions of tools I'm running in case that matters:

If you like I can make a release with linux binaries, to save you from the pain of building. I can't get it to build on windows at all, which is why I haven't made a release yet.

Also, how on earth did you find this project? I'm very glad you did, but I haven't told anyone about it :p

Rcomian commented 6 years ago

In fact you can try this here: https://www.dropbox.com/s/63816r3djvf5zbn/jsfx-0.6.0-lin.zip?dl=0

davephillips commented 6 years ago

Greetings ! Hey, thanks for the tips, I did eventually build and test the plugin. It's very cool, I'll test some of the fx tonight. You asked how I found your project: I'm a habitual git crawler, not a developer, but I know how to compile and debug from source code. Thank you for the binary, I haven't tested it yet. Btw, I thought you might like to see this: jsfx-vcv-linux

Rcomian commented 6 years ago

oh that's very cool, thank you. it isn't pretty is it. I was going to work on that but the windows build is sapping my time energy patience and motivation. thank you for trying it out tho, hope it works for you.