Rosegarden fails to compile on Ubuntu 16.04.01 LTS

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Rosegarden fails to compile on Ubuntu 16.04.01 LTS

Michael
Here's the output of the "cmake" command ( there's addition junk I put
in to understand):

cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] -DCMAKE_BUILD_TYPE=[Debug]
-- Hi Michael
-- Autodetecting Qt version to use
STATUS,"TP2"
-- TP3
-- TP4
-- TP5
-- TP6
-- Checking for module 'sndfile>=1.0.16'
--
-- Checking for module 'jack'
--   Found jack, version 0.124.1
CMake Warning at CMakeLists.txt:187 (message):
   Failed to find LIRC header lirc/lirc_client.h


CMake Warning at CMakeLists.txt:191 (message):
   Failed to find LIRC library lirc_client


--
-- The following features have been enabled:

  * ALSA , Alsa library (Advanced Linux Sound Architecture), used for
MIDI support
  * JACK , Library for accessing the JACK server (http://jackaudio.org).

-- The following REQUIRED packages have been found:

  * Qt4
  * PkgConfig
  * ZLIB
  * X11

-- The following features have been disabled:

  * SNDFILE , Better support for WAV files
  * LIRCCLIENT , The LIRC client library, for remote control support

-- Not building unit tests, using a static library for rosegarden
-- Configuring done
-- Generating done
-- Build files have been written to: /home/michael/rosegarden/build

here's the last output of the "make" command:

librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::JackCaptureClient(char const*, int)':
JackCaptureClient.cpp:(.text+0x63): undefined reference to
`jack_client_open'
JackCaptureClient.cpp:(.text+0x94): undefined reference to
`jack_get_sample_rate'
JackCaptureClient.cpp:(.text+0xad): undefined reference to
`jack_get_buffer_size'
JackCaptureClient.cpp:(.text+0xf4): undefined reference to
`jack_set_process_callback'
JackCaptureClient.cpp:(.text+0x10d): undefined reference to
`jack_on_shutdown'
JackCaptureClient.cpp:(.text+0x11d): undefined reference to `jack_activate'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::~JackCaptureClient()':
JackCaptureClient.cpp:(.text+0x216): undefined reference to
`jack_client_close'
JackCaptureClient.cpp:(.text+0x233): undefined reference to
`jack_ringbuffer_free'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::setFrameSize(int)':
JackCaptureClient.cpp:(.text+0x2bc): undefined reference to
`jack_ringbuffer_free'
JackCaptureClient.cpp:(.text+0x309): undefined reference to
`jack_ringbuffer_create'
JackCaptureClient.cpp:(.text+0x324): undefined reference to
`jack_ringbuffer_reset'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::getPorts()':
JackCaptureClient.cpp:(.text+0x365): undefined reference to `jack_get_ports'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::getCapturePortName()':
JackCaptureClient.cpp:(.text+0x384): undefined reference to `jack_port_name'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::setupPorts(char const*, char const*)':
JackCaptureClient.cpp:(.text+0x419): undefined reference to
`jack_port_register'
JackCaptureClient.cpp:(.text+0x46a): undefined reference to
`jack_port_connected'
JackCaptureClient.cpp:(.text+0x483): undefined reference to
`jack_port_get_connections'
JackCaptureClient.cpp:(.text+0x4c5): undefined reference to
`jack_port_disconnect'
JackCaptureClient.cpp:(.text+0x4e2): undefined reference to
`jack_port_by_name'
JackCaptureClient.cpp:(.text+0x4fd): undefined reference to `jack_port_name'
JackCaptureClient.cpp:(.text+0x517): undefined reference to `jack_connect'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::process(unsigned int, void*)':
JackCaptureClient.cpp:(.text+0x605): undefined reference to
`jack_port_get_buffer'
JackCaptureClient.cpp:(.text+0x619): undefined reference to
`jack_ringbuffer_write_space'
JackCaptureClient.cpp:(.text+0x67b): undefined reference to
`jack_ringbuffer_read_advance'
JackCaptureClient.cpp:(.text+0x6a1): undefined reference to
`jack_ringbuffer_write'
librosegardenprivate.a(JackCaptureClient.cpp.o): In function
`Rosegarden::JackCaptureClient::getFrame(float*, unsigned long)':
JackCaptureClient.cpp:(.text+0x70e): undefined reference to
`jack_ringbuffer_read_space'
JackCaptureClient.cpp:(.text+0x755): undefined reference to
`jack_ringbuffer_read'
collect2: error: ld returned 1 exit status
src/CMakeFiles/rosegarden.dir/build.make:131: recipe for target
'rosegarden' failed
make[2]: *** [rosegarden] Error 1
CMakeFiles/Makefile2:1063: recipe for target
'src/CMakeFiles/rosegarden.dir/all' failed
make[1]: *** [src/CMakeFiles/rosegarden.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2



This is a list of libjack* that's on my system:


find . -name 'libjack*' 2> /dev/null
./usr/share/doc-base/libjack-dev
./usr/share/doc/libjack0
./usr/share/doc/libjack-dev
./usr/lib/x86_64-linux-gnu/libjack.so.0.0.28
./usr/lib/x86_64-linux-gnu/libjack.so
./usr/lib/x86_64-linux-gnu/libjackserver.so.0
./usr/lib/x86_64-linux-gnu/libjack.a
./usr/lib/x86_64-linux-gnu/libjackserver.a
./usr/lib/x86_64-linux-gnu/libjackserver.so.0.0.28
./usr/lib/x86_64-linux-gnu/libjack.so.0
./usr/lib/x86_64-linux-gnu/libjackserver.so
./var/lib/doc-base/documents/libjack-dev
./var/lib/dpkg/info/libjack0:amd64.shlibs
./var/lib/dpkg/info/libjack0:amd64.md5sums
./var/lib/dpkg/info/libjack0:amd64.postinst
./var/lib/dpkg/info/libjack0:amd64.postrm
./var/lib/dpkg/info/libjack0:amd64.list
./var/lib/dpkg/info/libjack-dev.md5sums
./var/lib/dpkg/info/libjack-dev.list
./var/cache/apt/archives/libjack-jackd2-0_1.9.10+20150825git1ed50c92~dfsg-1ubuntu1_i386.deb
./var/cache/apt/archives/libjack-dev_1%3a0.124.1+20140122git5013bed0-3build2_amd64.deb
./var/cache/apt/archives/libjack0_1%3a0.124.1+20140122git5013bed0-3build2_amd64.deb


I'm stumped partially because I never used cmake a don't know how to
determine how trouble shoot this kind of build problem.


Michael


------------------------------------------------------------------------------
_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

Ted Felix-2
On 09/09/2016 07:33 PM, Michael wrote:
> cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] -DCMAKE_BUILD_TYPE=[Debug]

   The square brackets mean these things are optional.  You're not
supposed to type in the square brackets.  Try deleting your "build"
directory (rm -rf build), recreate it (mkdir build), switch into it (cd
build), then run cmake like this:

$ cmake ..

   Might work a little better.

Ted.

------------------------------------------------------------------------------
_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

Yves Guillemot

Le vendredi 9 septembre 2016, 16:33:19 Michael a écrit :

> I'm stumped partially because I never used cmake a don't know how to 

> determine how trouble shoot this kind of build problem.

 

 

$ make VERBOSE=1

 

shows the compilation commands.

 

Yves

 


------------------------------------------------------------------------------

_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

David Faure
In reply to this post by Michael
You can find out what JACK_LIBRARIES is set to, by doing this:

diff --git i/src/CMakeLists.txt w/src/CMakeLists.txt
index 73684ed..48f9df4 100644
--- i/src/CMakeLists.txt
+++ w/src/CMakeLists.txt
@@ -33,6 +33,7 @@ endif()
 if(JACK_FOUND)
     include_directories(${JACK_INCLUDE_DIRS})
     add_definitions(-DHAVE_LIBJACK)
+    message(STATUS "JACK_LIBRARIES=${JACK_LIBRARIES}")
     set(rg_OPTIONAL_LIBS ${rg_OPTIONAL_LIBS} ${JACK_LIBRARIES})
 endif()
 
It comes from pkgconfig, so if it's not set to "jack", something's wrong in the
pkg config file.
If it is set, then, hmm, you'd have to check that it does get into the linker
line (with make VERBOSE=1 as others said), but I don't see how it couldn't,
and then you could check which libjack is actually being used, by adding
 -Q -v -Wl,-t to the link line.
I wrote a wiki page on debugging linker errors some years ago btw
https://techbase.kde.org/Development/Tutorials/Debugging_Linker_Errors

--
David Faure, [hidden email], http://www.davidfaure.fr
Working on KDE Frameworks 5


------------------------------------------------------------------------------
_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

Michael

Hi Dave,

I got it to work last night!! Long story short I had been using root to build it. Changed all the file permissions to my account re-did the cmake, make and it worked. Except when I did make install via root it didn't move/copy the executable to /usr/whatever did NOT feel like digging through the make file because I wanted to play around with it!


There is an few typos in the README file:

    # cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] [-DCMAKE_BUILD_TYPE=Debug]
                                                          s/b the below -- mbw Sep 8 '16
    cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] -DCMAKE_BUILD_TYPE=[Debug]



There was a file that I had to modify:

rosegarden/src/sound/audiostream/SimpleWavFileWriteStream.cpp

#include <iostream>

Thanks for getting back to me!! BTW what's your 20 ( where do you live)?


Michael

Compton, California USA


On 09/10/2016 03:16 AM, David Faure wrote:
You can find out what JACK_LIBRARIES is set to, by doing this:

diff --git i/src/CMakeLists.txt w/src/CMakeLists.txt
index 73684ed..48f9df4 100644
--- i/src/CMakeLists.txt
+++ w/src/CMakeLists.txt
@@ -33,6 +33,7 @@ endif()
 if(JACK_FOUND)
     include_directories(${JACK_INCLUDE_DIRS})
     add_definitions(-DHAVE_LIBJACK)
+    message(STATUS "JACK_LIBRARIES=${JACK_LIBRARIES}")
     set(rg_OPTIONAL_LIBS ${rg_OPTIONAL_LIBS} ${JACK_LIBRARIES})
 endif()
 
It comes from pkgconfig, so if it's not set to "jack", something's wrong in the 
pkg config file.
If it is set, then, hmm, you'd have to check that it does get into the linker 
line (with make VERBOSE=1 as others said), but I don't see how it couldn't,
and then you could check which libjack is actually being used, by adding
 -Q -v -Wl,-t to the link line.
I wrote a wiki page on debugging linker errors some years ago btw
https://techbase.kde.org/Development/Tutorials/Debugging_Linker_Errors



------------------------------------------------------------------------------

_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

David Faure
On samedi 10 septembre 2016 11:34:24 CEST Michael wrote:

> Hi Dave,
>
> I got it to work last night!! Long story short I had been using root to
> build it. Changed all the file permissions to my account re-did the
> cmake, make and it worked. Except when I did make install via root it
> didn't move/copy the executable to /usr/whatever did NOT feel like
> digging through the make file because I wanted to play around with it!
>
>
> There is an few typos in the README file:
>
>      # cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] [-DCMAKE_BUILD_TYPE=Debug]
>                                                            s/b the below
> -- mbw Sep 8 '16
>      cmake .. -DCMAKE_INSTALL_PREFIX=[PREFIX] -DCMAKE_BUILD_TYPE=[Debug]

The first version is correct, the second is not.

Passing just "-DCMAKE_BUILD_TYPE=" doesn't make much sense. If you specify the
option, you should specify if you want debug or release.
But you can omit -DCMAKE_BUILD_TYPE=... altogether, then the cmakelists.txt
in rosegarden will default to "Release".

Hmm, I see, we use [...] to mean variable or optional, that's unclear. A
better version would be

cmake .. -DCMAKE_INSTALL_PREFIX=<MYPREFIX> [-DCMAKE_BUILD_TYPE=Debug]

where <MYPREFIX> has to be replaced with your install prefix,
and where [-DCMAKE_BUILD_TYPE=Debug] means this part is optional.

Would that be clearer?

> There was a file that I had to modify:
> rosegarden/src/sound/audiostream/SimpleWavFileWriteStream.cpp
> #include <iostream>

OK, I committed that.

> Thanks for getting back to me!! BTW what's your 20 ( where do you live)?

I live in France (although I'm in Berlin this week for the KDE conference
called Akademy).
Good thing you "translated" the "what's your 20" expression for me, I wouldn't
have understood it :-)

--
David Faure, [hidden email], http://www.davidfaure.fr
Working on KDE Frameworks 5


------------------------------------------------------------------------------
_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel
Reply | Threaded
Open this post in threaded view
|

Re: Rosegarden fails to compile on Ubuntu 16.04.01 LTS

D. Michael McIntyre-3
> Good thing you "translated" the "what's your 20" expression for me, I wouldn't
> have understood it :-)

American truck driver lingo.  I would have thought I was the only one in
the Linux universe who knew anything about that.

--
D. Michael McIntyre

------------------------------------------------------------------------------
_______________________________________________
Rosegarden-devel mailing list
[hidden email] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel