Compiling chuck on UbuntuStudioGutsy32
Hi, I've just downgraded from UbuntuStudioGutsy64 and I'm attempting to get Chuck running but I can't seem to understand this error that I'm getting. I have downloaded rtaudio4.0.3 and it looks like it compiled fine. make linux-jack make -f makefile.jack make[1]: Entering directory `/home/stochastic/Desktop/ChucK/chuck- 1.2.1.1/src' g++ -D__LINUX_JACK__ -c -O3 -D__CK_SNDFILE_NATIVE__ rtaudio.cpp rtaudio.cpp:2715:23: error: jack/jack.h: No such file or directory rtaudio.cpp:2721: error: ISO C++ forbids declaration of 'jack_client_t' with no type rtaudio.cpp:2721: error: expected ';' before '*' token rtaudio.cpp:2722: error: ISO C++ forbids declaration of 'jack_port_t' with no type rtaudio.cpp....... what obvious part am I missing? It would really be nice if some proper Linux documentation could be written into the upcoming versions of the install tutorial. I'd be happy to help write it once I understand it. Thanks. -Eric
I think it's "libjack-dev"
On 14/12/2007, Scott Wheeler
Eric Hedekar wrote:
rtaudio.cpp:2715:23: error: jack/jack.h: No such file or directory
what obvious part am I missing?
That you don't have the Jack headers installed. (Probably a package called jack-devel, or similar.)
-Scott
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Okay, so so far I have been required to download the following that I didn't
already have installed (from a fairly recent UbuntuStudio Gutsy 32-bit
install):
-bison
-flex
-libsndfile
-libjack-dev
Other packages, which I either had already or got to try to fix the earlier
problem, that may need to be included into the required listing here:
-rtaudio4.0.3 (not sure if Ubuntu ships with rtaudio already but I compiled
the latest)
-gcc
-g++
And while jack was running I successfully built and ran chuck with moe++
Can anyone else help build this list of dependencies, I'd like to make it
part of some Ubuntu documentation, maybe it will lead to a regular packaging
team working with UbuntuStudio.
-Eric
On Dec 14, 2007 2:10 AM, Scott Wheeler
Eric Hedekar wrote:
rtaudio.cpp:2715:23: error: jack/jack.h: No such file or directory
what obvious part am I missing?
That you don't have the Jack headers installed. (Probably a package called jack-devel, or similar.)
-Scott
_______________________________________________ chuck-users mailing list chuck-users@lists.cs.princeton.edu https://lists.cs.princeton.edu/mailman/listinfo/chuck-users
Eric Hedekar wrote:
make linux-jack make -f makefile.jack make[1]: Entering directory `/home/stochastic/Desktop/ChucK/chuck-1.2.1.1/src http://1.2.1.1/src' g++ -D__LINUX_JACK__ -c -O3 -D__CK_SNDFILE_NATIVE__ rtaudio.cpp rtaudio.cpp:2715:23: error: jack/jack.h: No such file or directory rtaudio.cpp:2721: error: ISO C++ forbids declaration of 'jack_client_t' with no type rtaudio.cpp:2721: error: expected ';' before '*' token rtaudio.cpp:2722: error: ISO C++ forbids declaration of 'jack_port_t' with no type rtaudio.cpp.......
what obvious part am I missing?
This is a common problem when compiling stuff from source: missing packages. It's easy to install the needed packages your self, if you know what you need! First install apt-file (and run "sudo apt-file update"). Now look at the errors you got. The first problem marked "error" says that it can't find a file called "jack.h", however apt-file can find it for you: "apt-file search jack.h", which I think (I'm not on ubuntu) will report libjack-dev. So you do "sudo apt-get install libjack-dev". Run make again, and repeat the above for other missing packages.
It would really be nice if some proper Linux documentation could be written into the upcoming versions of the install tutorial. I'd be happy to help write it once I understand it.
I can understand that you'd rather have a nice list of packages to install, but I personally don't think this is such a good idea, mainly because it's likely to become unmaintained quite quickly. Remember that the problems you encountered are not a sign of anything not working, quite the opposite. It's a perfectly normal behaviour and the error messages even give you an exact description of the problem. After you've done this a few times with a few programs, I suspect you'll agree with me that it's quite straight forward, and that a list of packages to install beforehand is not needed... NB: Glad to hear that you got it working! -- peace, love & harmony Atte http://atte.dk | http://myspace.com/attejensen http://anagrammer.dk | http://modlys.dk
This is a common problem when compiling stuff from source: missing packages. It's easy to install the needed packages your self, if you know what you need!
First install apt-file (and run "sudo apt-file update"). Now look at the errors you got. The first problem marked "error" says that it can't find a file called "jack.h", however apt-file can find it for you: "apt-file search jack.h", which I think (I'm not on ubuntu) will report libjack-dev. So you do "sudo apt-get install libjack-dev". Run make again, and repeat the above for other missing packages.
Hmm, I've been using linux for the last four years and this is the first time anyone has ever told me about apt-file. Nearly every package I've ever needed to install from source has listed the dependencies.
It would really be nice if some proper Linux documentation could be written into the upcoming versions of the install tutorial. I'd be happy to help write it once I understand it.
I can understand that you'd rather have a nice list of packages to install, but I personally don't think this is such a good idea, mainly because it's likely to become unmaintained quite quickly. Remember that the problems you encountered are not a sign of anything not working, quite the opposite. It's a perfectly normal behaviour and the error messages even give you an exact description of the problem.
After you've done this a few times with a few programs, I suspect you'll agree with me that it's quite straight forward, and that a list of packages to install beforehand is not needed...
NB: Glad to hear that you got it working!
I can see where you're coming from with the package list possibly not being maintained, but it'd still be better than nothing at all. I knew all along that the error messages are there for a reason, I just didn't understand what they were saying. This does not mean that things are working fine. If audio enthusiasts such as myself need to know of obscure (maybe apt-file is not obscure, and I've been living under a rock) linux admin commands to get ChucK installed then something is not working - the install interface. Nowadays in gutsy apt-get is becoming a backend command and almost everything is being migrated to Synaptic or at least .deb packages that allow for point-click install. I am aware that ChucK is a developing program and that it is also designed for programmers, but it's also meant for composers and musicians who don't know everything there is to know about reading error messages. I'd love to see a .deb packaged in time to be in the repos for Hardy's LTS release in April but if that's not doable, then can we at least get a page of "How to use apt-file to find missing dependencies" in the linux install directions instead of the current "No help here" phrase that discourages newbies from experimenting. Just my 2cents. -Eric
Eric Hedekar wrote:
Hmm, I've been using linux for the last four years and this is the first time anyone has ever told me about apt-file. Nearly every package I've ever needed to install from source has listed the dependencies.
You mean like a list of dependencies? http://chuck.cs.princeton.edu/release/ says you need # source # dependency: libsndfile # ALSA, JACK, or OSS (you should already have one) # gcc, lex, yacc, make (you better have these) I know that this is not ubuntu specific, but please remember that there are lots of other linux distributions outthere, and maintaning a list of packages for redhat, suse, gentoo, slaxware, debian and ubuntu (aren't those the 6 biggest ones?) is not something we should ask the chuck developers...
I can see where you're coming from with the package list possibly not being maintained, but it'd still be better than nothing at all.
Then go ahead and make a list :-) I'll just not be using it...
I knew all along that the error messages are there for a reason, I just didn't understand what they were saying.
Ok. Did you actually read them or just think "oops, errors, I must have done something wrong"? No offence, but in my oppinion "error: jack/jack.h: No such file or directory" is quite easy to understand :-) This does not mean that things are
working fine. If audio enthusiasts such as myself need to know of obscure (maybe apt-file is not obscure,
It's not obscure, it's just cool :-)
and I've been living under a rock) linux admin commands to get ChucK installed then something is not working - the install interface.
Compiling a program from source is not that tricky, but compared with synaptic it's "linux admin", I agree. So either one sticks with the software available through synaptic or one learns to compile from source. I simply tried to help you understand, in a more general way, how to compile a piece of software, so that you'll know what to do next time you need to. -- peace, love & harmony Atte http://atte.dk | http://myspace.com/attejensen http://anagrammer.dk | http://modlys.dk
To me "error: jack/jack.h: No such file or directory" simply means that the compiler can't find the file. It gives no further info than that. I got quite confused at this stage as I had Jack installed and running. I even searched google for this error and found very little. Now (after gaining info from this list) I understand that headers are needed for the specified audio server (something that is not stated in the official list of dependencies or at least from my reading of it). I wouldn't expect Ubuntu-specific dependencies to be implemented by the chuck developers, but it's not something that is useless either. I'd like to incorporate it into some ubuntu documentation (probably the best place for it) and maybe other distribution communities could do the same, possibly having the ChucK website provide links to said documentation. On a side note, source is rarely ever needed in getting software for a linux system - from my experience. If it's not in the repos, there's usually a deb or rpm for download. In the case of a source file, most give quite detailed dependency listings and I still hold that ChucK needs to at least add that headers (often found in the dev libs) are needed. Correct me if this is wrong. It'd also be nice to hear from someone else on the matter as it's clear that Atte thinks the above error message is quite obvious to fix and I don't. -Eric
Atte André Jensen wrote:
Compiling a program from source is not that tricky, but compared with synaptic it's "linux admin", I agree. So either one sticks with the software available through synaptic or one learns to compile from source.
I simply tried to help you understand, in a more general way, how to compile a piece of software, so that you'll know what to do next time you need to.
Actually this is all getting kind of silly. The reason that ChucK is hard to compile is that unlike almost all other pieces of software on Linux, it doesn't use autoconf (or similar) to provide a configure script that first checks for dependencies. I'd be willing to set that up for ChucK, but only if I was sure that it'd go into the official version. Otherwise it's not worth wasting the time. -Scott
Scott Wheeler wrote:
Actually this is all getting kind of silly.
Agreed. I tried to help and somehow managed not to. I'm pulling the plug on this one :-) -- peace, love & harmony Atte http://atte.dk | http://myspace.com/attejensen http://anagrammer.dk | http://modlys.dk
Scott Wheeler
Atte André Jensen wrote:
Compiling a program from source is not that tricky, but compared with synaptic it's "linux admin", I agree. So either one sticks with the software available through synaptic or one learns to compile from source.
I simply tried to help you understand, in a more general way, how to compile a piece of software, so that you'll know what to do next time you need to.
Actually this is all getting kind of silly. The reason that ChucK is hard to compile is that unlike almost all other pieces of software on Linux, it doesn't use autoconf (or similar) to provide a configure script that first checks for dependencies. I'd be willing to set that up for ChucK, but only if I was sure that it'd go into the official version. Otherwise it's not worth wasting the time.
-Scott
Hello Scott, Would an autoconf-based build solve the problems with 64-bit architectures? I was able to compile chuck and its dependencies on x86_64 fine but it has issues with primitives (among other things) at runtime $ chuck -s type_primitives.ck 0.000000 :(int) 0.000000 :(int) 0.000000 :(int) 0.000000 :(float) 0.000000 :(dur) 0.000000 :(time) 0.000000 :(string) 480000.000000 :(time) *** glibc detected *** chuck: double free or corruption (!prev): 0x0000000000a02680 *** ======= Backtrace: ========= /lib/libc.so.6[0x2ab67cf9caad] /lib/libc.so.6(cfree+0x76)[0x2ab67cf9e796] chuck[0x40d1dd] chuck[0x40d289] chuck[0x410adb] chuck[0x40dc7c] chuck[0x40deb2] chuck[0x40f58b] chuck[0x455e4e] /lib/libc.so.6(__libc_start_main+0xf4)[0x2ab67cf4db74] chuck(__gxx_personality_v0+0x309)[0x407549] ======= Memory map: ======== 00400000-00533000 r-xp 00000000 08:03 9212003 /usr/bin/chuck 00732000-00733000 r--p 00132000 08:03 9212003 /usr/bin/chuck 00733000-0075a000 rw-p 00133000 08:03 9212003 /usr/bin/chuck 0075a000-00a19000 rw-p 0075a000 00:00 0 [heap] 40000000-40001000 ---p 40000000 00:00 0 40001000-40851000 rw-p 40001000 00:00 0 40851000-40852000 ---p 40851000 00:00 0 40852000-410a2000 rw-p 40852000 00:00 0 2aaaac000000-2aaaac021000 rw-p 2aaaac000000 00:00 0 2aaaac021000-2aaab0000000 ---p 2aaaac021000 00:00 0 2ab67bc52000-2ab67bc6d000 r-xp 00000000 08:03 9079390 /lib64/ld-2.6.1.so 2ab67bc6d000-2ab67bc6f000 rw-p 2ab67bc6d000 00:00 0 2ab67be6c000-2ab67be6d000 r--p 0001a000 08:03 9079390 /lib64/ld-2.6.1.so 2ab67be6d000-2ab67be6e000 rw-p 0001b000 08:03 9079390 /lib64/ld-2.6.1.so 2ab67be6e000-2ab67bf2c000 r-xp 00000000 08:03 9373285 /usr/lib64/libasound.so.2.0.0 2ab67bf2c000-2ab67c12b000 ---p 000be000 08:03 9373285 /usr/lib64/libasound.so.2.0.0 2ab67c12b000-2ab67c12e000 r--p 000bd000 08:03 9373285 /usr/lib64/libasound.so.2.0.0 2ab67c12e000-2ab67c133000 rw-p 000c0000 08:03 9373285 /usr/lib64/libasound.so.2.0.0 2ab67c133000-2ab67c143000 r-xp 00000000 08:03 9389721 /usr/lib64/libjack.so.0.0.23 2ab67c143000-2ab67c342000 ---p 00010000 08:03 9389721 /usr/lib64/libjack.so.0.0.23 2ab67c342000-2ab67c343000 r--p 0000f000 08:03 9389721 /usr/lib64/libjack.so.0.0.23 2ab67c343000-2ab67c345000 rw-p 00010000 08:03 9389721 /usr/lib64/libjack.so.0.0.23 2ab67c345000-2ab67c34d000 rw-p 2ab67c345000 00:00 0 2ab67c34d000-2ab67c42f000 r-xp 00000000 08:03 8931325 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8 2ab67c42f000-2ab67c62e000 ---p 000e2000 08:03 8931325 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8 2ab67c62e000-2ab67c635000 r--p 000e1000 08:03 8931325 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8 2ab67c635000-2ab67c637000 rw-p 000e8000 08:03 8931325 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8 2ab67c637000-2ab67c64a000 rw-p 2ab67c637000 00:00 0 2ab67c64a000-2ab67c64c000 r-xp 00000000 08:03 9079396 /lib64/libdl-2.6.1.so 2ab67c64c000-2ab67c84c000 ---p 00002000 08:03 9079396 /lib64/libdl-2.6.1.so 2ab67c84c000-2ab67c84d000 r--p 00002000 08:03 9079396 /lib64/libdl-2.6.1.so 2ab67c84d000-2ab67c84e000 rw-p 00003000 08:03 9079396 /lib64/libdl-2.6.1.so 2ab67c84e000-2ab67c89a000 r-xp 00000000 08:03 9290567 /usr/lib64/libsndfile.so.1.0.17 2ab67c89a000-2ab67ca9a000 ---p 0004c000 08:03 9290567 /usr/lib64/libsndfile.so.1.0.17 2ab67ca9a000-2ab67ca9c000 r--p 0004c000 08:03 9290567 /usr/lib64/libsndfile.so.1.0.17 2ab67ca9c000-2ab67ca9d000 rw-p 0004e000 08:03 9290567 /usr/lib64/libsndfile.so.1.0.17 2ab67ca9d000-2ab67caa1000 rw-p 2ab67ca9d000 00:00 0 2ab67caa1000-2ab67cb21000 r-xp 00000000 08:03 9077432 /lib64/libm-2.6.1.so 2ab67cb21000-2ab67cd20000 ---p 00080000 08:03 9077432 /lib64/libm-2.6.1.so 2ab67cd20000-2ab67cd21000 r--p 0007f000 08:03 9077432 /lib64/libm-2.6.1.so 2ab67cd21000-2ab67cd22000 rw-p 00080000 08:03 9077432 /lib64/libm-2.6.1.so 2ab67cd22000-2ab67cd23000 rw-p 2ab Aborted I haven't written C since college, but still might be able to help. michael
Michael Heuer wrote:
Scott Wheeler
wrote: Atte André Jensen wrote:
Compiling a program from source is not that tricky, but compared with synaptic it's "linux admin", I agree. So either one sticks with the software available through synaptic or one learns to compile from source.
I simply tried to help you understand, in a more general way, how to compile a piece of software, so that you'll know what to do next time you need to.
Actually this is all getting kind of silly. The reason that ChucK is hard to compile is that unlike almost all other pieces of software on Linux, it doesn't use autoconf (or similar) to provide a configure script that first checks for dependencies. I'd be willing to set that up for ChucK, but only if I was sure that it'd go into the official version. Otherwise it's not worth wasting the time.
-Scott
Hello Scott,
Would an autoconf-based build solve the problems with 64-bit architectures?
I was able to compile chuck and its dependencies on x86_64 fine but it has issues with primitives (among other things) at runtime
No, unfortunately. That problem is related (at least) to ChucK doing casting between pointers and integers. One thing that I've wanted to try with regards to that is to see if simply redefining ChucK's integer type to be 64-bit on those platforms would have any significant effect, but I suspect it's not that easy. I also noticed when searching for something else recently that someone *did* apparently convert ChucK over to auto* a while back, it just was never added to CVS. Cheers, -Scott
Scott Wheeler
Michael Heuer wrote:
Would an autoconf-based build solve the problems with 64-bit architectures?
I was able to compile chuck and its dependencies on x86_64 fine but it has issues with primitives (among other things) at runtime
No, unfortunately. That problem is related (at least) to ChucK doing casting between pointers and integers. One thing that I've wanted to try with regards to that is to see if simply redefining ChucK's integer type to be 64-bit on those platforms would have any significant effect, but I suspect it's not that easy.
in chuck_def.h #define t_CKINT long #define t_CKWORD unsigned long #define t_CKUINT t_CKWORD Shouldn't long be 64 bits on x86_64? michael
Michael Heuer wrote:
Scott Wheeler
wrote: Michael Heuer wrote:
Would an autoconf-based build solve the problems with 64-bit architectures?
I was able to compile chuck and its dependencies on x86_64 fine but it has issues with primitives (among other things) at runtime
No, unfortunately. That problem is related (at least) to ChucK doing casting between pointers and integers. One thing that I've wanted to try with regards to that is to see if simply redefining ChucK's integer type to be 64-bit on those platforms would have any significant effect, but I suspect it's not that easy.
in chuck_def.h
#define t_CKINT long #define t_CKWORD unsigned long #define t_CKUINT t_CKWORD
Shouldn't long be 64 bits on x86_64?
In any case, redefining these as long long and unsigned long long respectively didn't help any. michael
fre 2007-12-14 klockan 14:25 -0800 skrev Eric Hedekar:
I am aware that ChucK is a developing program and that it is also designed for programmers, but it's also meant for composers and musicians who don't know everything there is to know about reading error messages. I'd love to see a .deb packaged in time to be in the repos for Hardy's LTS release in April
Actually chuck is already in the ubuntu-repos (in gutsy, atleast). Thuogh, it's just version 1.1.0.9 or something like that. The last without UAna. Gasten
participants (6)
-
Atte André Jensen
-
Eric Hedekar
-
Kassen
-
Martin Ahnelöv
-
Michael Heuer
-
Scott Wheeler