ssj71 / rkrlv2

Rakarrack Effects Ported to LV2 Plugins
GNU General Public License v2.0
53 stars 10 forks source link

Can't compile on Ubuntu 14.04 #2

Closed sliwowitz closed 9 years ago

sliwowitz commented 9 years ago

Hi, I'm trying to compile on Ubuntu 14.04LTS, but I get this error:

strazce@doom:~/hacking/rkrlv2/build$ make [ 1%] Building CXX object lv2/CMakeFiles/rkrlv2.dir/rkrlv2.C.o /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C: In function ‘void run_revtronlv2(LV2_Handle, uint32_t)’: /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3037:78: error: ‘lv2_atom_forge_object’ was not declared in this scope lv2_atom_forge_object( &plug->forge, &frame, 0, plug->URIDs.patch_Set); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3039:68: error: ‘lv2_atom_forge_key’ was not declared in this scope lv2_atom_forge_key(&plug->forge, plug->URIDs.patch_property); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3074:86: error: ‘lv2_atom_forge_object’ was not declared in this scope lv2_atom_forge_object( &plug->forge, &frame, 0, plug->URIDs.patch_Set); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3076:73: error: ‘lv2_atom_forge_key’ was not declared in this scope lv2_atom_forge_key(&plug->forge, plug->URIDs.patch_property); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C: In function ‘void run_echotronlv2(LV2_Handle, uint32_t)’: /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3312:78: error: ‘lv2_atom_forge_object’ was not declared in this scope lv2_atom_forge_object( &plug->forge, &frame, 0, plug->URIDs.patch_Set); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3314:68: error: ‘lv2_atom_forge_key’ was not declared in this scope lv2_atom_forge_key(&plug->forge, plug->URIDs.patch_property); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3349:86: error: ‘lv2_atom_forge_object’ was not declared in this scope lv2_atom_forge_object( &plug->forge, &frame, 0, plug->URIDs.patch_Set); ^ /home/strazce/hacking/rkrlv2/lv2/rkrlv2.C:3351:73: error: ‘lv2_atom_forge_key’ was not declared in this scope lv2_atom_forge_key(&plug->forge, plug->URIDs.patch_property); ^ make[2]: * [lv2/CMakeFiles/rkrlv2.dir/rkrlv2.C.o] Error 1 make[1]: * [lv2/CMakeFiles/rkrlv2.dir/all] Error 2 make: *\ [all] Error 2

The system LV2 is version 1.8.0, I don't see these functions declared in the installed headers, and I'm not sure that using some newer LV2 package wouldn't break other stuff I have installed.

Any tips on what to do with that?

ssj71 commented 9 years ago

Hmm. Looks like its not finding your lv2 install. Do you have the package lv2-dev installed? That would have the necessary headers to compile. I'm on a ubuntu 14.04 system as well but its working fine here.

sliwowitz commented 9 years ago

Yes, lv2-dev was installed, but I didn't see for example "lv2_atom_forge_key" declared in the headers (forge.h). I "solved" that yesterday by upgrading to Ubuntu 15.04 - it works fine there. To reproduce the problem, I installed a 14.04 virtual machine.

Ubuntu 14.04:

strazce@strazce-VirtualBox:~$ apt-show-versions lv2-dev
lv2-dev:amd64/trusty 1.8.0~dfsg0-1 uptodate

Looking for one of the missing symbols yields no result here:

strazce@strazce-VirtualBox:~$ grep lv2_atom_forge_key /usr/include/lv2/lv2plug.in/ns/ext/atom/*
strazce@strazce-VirtualBox:~$

rkrlv2 compilation fails with the error mentioned in the first post.

Ubuntu 15.04:

strazce@doom:~$ apt-show-versions lv2-dev
lv2-dev:amd64/vivid 1.10.0~dfsg1-1 uptodate
lv2-dev:i386 not installed

The function which was missing in 14.04 is declared in forge.h:

strazce@doom:~$ grep lv2_atom_forge_key /usr/include/lv2/lv2plug.in/ns/ext/atom/forge.h 
   lv2_atom_forge_key(forge, eg_name);
lv2_atom_forge_key(LV2_Atom_Forge* forge,
   use the simpler lv2_atom_forge_key() instead.

rkrlv2 compiles fine here.

Are you using the stock lv2-dev package from the 14.04 repos?

ssj71 commented 9 years ago

My package must be coming from the kxstudio ppa. I highly recommend using them if you are going to do audio work. You can find instructions about how to install them at the kxstudio site http://kxstudio.linuxaudio.org/Documentation:Repository:Upgrade I always skip step 3 and only install the audio and plugin meta packages in step 4. That repo stays very current without ever breaking official Ubuntu compatability. On Jul 26, 2015 4:42 AM, "sliwowitz" notifications@github.com wrote:

Yes, lv2-dev was installed, but I didn't see for example "lv2_atom_forge_key" declared in the headers (forge.h). I "solved" that yesterday by upgrading to Ubuntu 15.04 - it works fine there. To reproduce the problem, I installed a 14.04 virtual machine. Ubuntu 14.04:

strazce@strazce-VirtualBox:~$ apt-show-versions lv2-dev lv2-dev:amd64/trusty 1.8.0~dfsg0-1 uptodate

Looking for one of the missing symbols yields no result here:

strazce@strazce-VirtualBox:~$ grep lv2_atom_forge_key /usr/include/lv2/lv2plug.in/ns/ext/atom/* strazce@strazce-VirtualBox:~$

rkrlv2 compilation fails with the error mentioned in the first post. Ubuntu 15.04:

strazce@doom:~$ apt-show-versions lv2-dev lv2-dev:amd64/vivid 1.10.0~dfsg1-1 uptodate lv2-dev:i386 not installed

The function which was missing in 14.04 is declared in forge.h:

strazce@doom:~$ grep lv2_atom_forge_key /usr/include/lv2/lv2plug.in/ns/ext/atom/forge.h lv2_atom_forge_key(forge, eg_name); lv2_atom_forge_key(LV2_Atom_Forge* forge, use the simpler lv2_atom_forge_key() instead.

rkrlv2 compiles fine here.

Are you using the stock lv2-dev package from the 14.04 repos?

— Reply to this email directly or view it on GitHub https://github.com/ssj71/rkrlv2/issues/2#issuecomment-124968710.

ssj71 commented 9 years ago

Ok. I ran through installation with a clean install of ubuntu. I needed to install cmake, g++, lv2-dev, libsamplerate0-dev, and libfftw3-dev. It does appear that lv2-dev in 14.04 is too old (1.8.0). I'll update the cmake project to issue an error if lv2-dev is less than 1.10.0.

To work around it I first recommend installing the kxstudio ppas. There is no reason not to. It is a trusted source and the de-facto standard place for music apps on debian and ubuntu systems. Barring that you can manually install only the more up to date lv2-dev package from kxstudio with the following commands:

wget https://launchpad.net/~kxstudio-debian/+archive/ubuntu/libs/+files/lv2-dev_1.12.0-2kxstudio4_i386.deb
sudo dpkg --install lv2-dev_1.12.0-2kxstudio4_i386.deb

If you are a 64 bit system substitute amd64 in the place of i386 in the above commands. Once you have done this you can make the rkrlv2 plugins successfully in ubuntu 14.04.

Thanks for the report!