Jump to content

Building MIOS Studio 2 for Linux


Davo
 Share

Recommended Posts

I'm having some trouble getting MIOS Studio for Linux. First, SVN doesn't seem to like this url: http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2Ftools%2Fmios_studio%2F

I managed to get a tree using this command: svn co svn://svnmios.midibox.org/mios but I don't see MIOS Studio 2 in there anywhere. Please help.

Link to comment
Share on other sites

Okay, I got the correct repository, opened up the Juce zip in mios32/trunk/tools/mios_studio/src/. Now I get this:

zaphod:~/proj/synth/midibox/mios32/trunk/tools/mios_studio/build/linux$ make

==== Building MiosStudio ====

juce_LibrarySource.cpp

../../src/juce_LibrarySource.cpp:15: fatal error: ../../../../../juce/juce_amalgamated.cpp: No such file or directory

compilation terminated.

make[1]: *** [build/intermediate/Debug/juce_LibrarySource.o] Error 1

make: *** [MiosStudio] Error 2

zaphod:~/proj/synth/midibox/mios32/trunk/tools/mios_studio/build/linux$

I don't see where the build process is getting these paths.

Link to comment
Share on other sites

I did this and the compile went okay until this point:

UploadWindow.cpp

../../src/gui/UploadWindow.cpp: In constructor ‘UploadWindow::UploadWindow(MiosStudio*)’:

../../src/gui/UploadWindow.cpp:46: warning: ‘void juce::Button::addButtonListener(juce::Button::Listener*)’ is deprecated (declared at ../../src/gui/../../../../../../juce/juce_amalgamated.h:36764)

../../src/gui/UploadWindow.cpp:66: warning: ‘void juce::Button::addButtonListener(juce::Button::Listener*)’ is deprecated (declared at ../../src/gui/../../../../../../juce/juce_amalgamated.h:36764)

../../src/gui/UploadWindow.cpp:71: warning: ‘void juce::Button::addButtonListener(juce::Button::Listener*)’ is deprecated (declared at ../../src/gui/../../../../../../juce/juce_amalgamated.h:36764)

MidiSlider.cpp

MidiMonitor.cpp

MiosTerminal.cpp

Linking MiosStudio

build/intermediate/Debug/MiosStudio.o: In function `SysexToolWindow::SysexToolWindow(MiosStudio*)':

MiosStudio.cpp:(.text._ZN15SysexToolWindowC1EP10MiosStudio[sysexToolWindow::SysexToolWindow(MiosStudio*)]+0x92): undefined reference to `SysexTool::SysexTool(MiosStudio*)'

build/intermediate/Debug/MiosStudio.o: In function `SysexToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)':

MiosStudio.cpp:(.text._ZN15SysexToolWindow25handleIncomingMidiMessageERKN4juce11MidiMessageEh[sysexToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)]+0x3d): undefined reference to `SysexToolReceive::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)'

build/intermediate/Debug/MiosStudio.o: In function `OscToolWindow::OscToolWindow(MiosStudio*)':

MiosStudio.cpp:(.text._ZN13OscToolWindowC1EP10MiosStudio[OscToolWindow::OscToolWindow(MiosStudio*)]+0x92): undefined reference to `OscTool::OscTool(MiosStudio*)'

build/intermediate/Debug/MiosStudio.o: In function `Midio128ToolWindow::Midio128ToolWindow(MiosStudio*)':

MiosStudio.cpp:(.text._ZN18Midio128ToolWindowC1EP10MiosStudio[Midio128ToolWindow::Midio128ToolWindow(MiosStudio*)]+0x92): undefined reference to `Midio128Tool::Midio128Tool(MiosStudio*)'

build/intermediate/Debug/MiosStudio.o: In function `Midio128ToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)':

MiosStudio.cpp:(.text._ZN18Midio128ToolWindow25handleIncomingMidiMessageERKN4juce11MidiMessageEh[Midio128ToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)]+0x3a): undefined reference to `Midio128ToolControl::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)'

build/intermediate/Debug/MiosStudio.o: In function `MbCvToolWindow::MbCvToolWindow(MiosStudio*)':

MiosStudio.cpp:(.text._ZN14MbCvToolWindowC1EP10MiosStudio[MbCvToolWindow::MbCvToolWindow(MiosStudio*)]+0x92): undefined reference to `MbCvTool::MbCvTool(MiosStudio*)'

build/intermediate/Debug/MiosStudio.o: In function `MbCvToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)':

MiosStudio.cpp:(.text._ZN14MbCvToolWindow25handleIncomingMidiMessageERKN4juce11MidiMessageEh[MbCvToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)]+0x3a): undefined reference to `MbCvToolControl::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)'

build/intermediate/Debug/MiosStudio.o: In function `MbhpMfToolWindow::MbhpMfToolWindow(MiosStudio*)':

MiosStudio.cpp:(.text._ZN16MbhpMfToolWindowC1EP10MiosStudio[MbhpMfToolWindow::MbhpMfToolWindow(MiosStudio*)]+0x92): undefined reference to `MbhpMfTool::MbhpMfTool(MiosStudio*)'

build/intermediate/Debug/MiosStudio.o: In function `MbhpMfToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)':

MiosStudio.cpp:(.text._ZN16MbhpMfToolWindow25handleIncomingMidiMessageERKN4juce11MidiMessageEh[MbhpMfToolWindow::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)]+0x3a): undefined reference to `MbhpMfToolControl::handleIncomingMidiMessage(juce::MidiMessage const&, unsigned char)'

collect2: ld returned 1 exit status

make[1]: *** [build/MiosStudio] Error 1

make: *** [MiosStudio] Error 2

zaphod:~/proj/synth/midibox/mios32/trunk/tools/mios_studio/build/linux$

Link to comment
Share on other sites

  • 10 months later...

There is a precompiled Linux binary meanwhile.

To build the binary a modification in juce_1_52 is required to get MIDI running properly (documented somewhere in this forum). Newer juce versions are not considered yet by the source code.

Do you have issues with the precompiled version?

Best Regards, Thorsten.

Link to comment
Share on other sites

I don't actually have this problem with more recent versions. I did manage to re-create this issue with the version Davo was running at the time. I am looking at this because I have a very similar problem with another program's compilation and am trying to figure out how to fix it (by looking at what you did). See my post here: http://www.rawmaterialsoftware.com/viewtopic.php?f=5&t=8282

Link to comment
Share on other sites

I am looking at this because I have a very similar problem with another program's compilation and am trying to figure out how to fix it (by looking at what you did.

Ok, this explains why I haven't noticed this issue by myself so far.

The linker error message "undefined reference to `<function-name>'" usually appears if a function is correctly declared in a .h file, but the related .cpp file hasn't been compiled. The linker can't find it in the object files, and therefore can't build the complete binary.

The issue is related to the Linux build flow which generates a Makefile for all .cpp sources via "premake".

If this command isn't available on your machine, or if you are using an unsupported version, the <application>.make file won't be generated and then you are probably trying to build the application based on an outdated Makefile which doesn't reference all .cpp sources.

This was the issue that Davo had.

Meanwhile I committed a new pre-generated MiosStudio.make file to the repository which includes all new sources, therefore the build flow is working even without "premake"

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...