Sonify icon indicating copy to clipboard operation
Sonify copied to clipboard

gcc error on Linux

Open qubodup opened this issue 10 years ago • 8 comments

Hi, I found this via http://jackaudio.org/applications/ and want to build this on Linux.

$ make
gcc -g -lpthread -lm -lfftw3f -ljack -laubio -lgd -I/usr/local/include -I/usr/local/include/aubio -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/local/include/SDL -lpthread -lm -lfftw3f -ljack -laubio -lgd -framework CoreAudio -framework CoreServices -framework AudioUnit -L/usr/local/lib -ljack -laubio -ljpeg -lfontconfig -lfreetype -lpng12 -lz /usr/local/lib/libiconv.dylib -Wl,-framework,Cocoa -L/usr/local/lib -lSDLmain -lSDL -lSDL_image  main.c resize.c -o sonify 
gcc: error: CoreAudio: No such file or directory
gcc: error: CoreServices: No such file or directory
gcc: error: AudioUnit: No such file or directory
gcc: error: /usr/local/lib/libiconv.dylib: No such file or directory
gcc: error: unrecognized command line option ‘-framework’
gcc: error: unrecognized command line option ‘-framework’
gcc: error: unrecognized command line option ‘-framework’
Makefile:9: recipe for target 'all' failed
make: *** [all] Error 1

I guess this is known though:

TODO: Rewrite Makefile so that it is not OS X-specific.

If this happens to be trivial, I'd gladly test advice on how to modify this for Linux usability and then perhaps we can produce a Makefile-Linux in the end.

qubodup avatar Jan 01 '16 21:01 qubodup

Those are all OSX technologies; I've had a go at making a linux make file, I started by removing the references containing "-framework" and CoreAudio, also poinitng libiconv to the right location (it's in /usr/include). I got further errors, so I stopped there: gcc -g -lpthread -lm -lfftw3f -ljack -laubio -lgd -I/usr/local/include -I/usr/local/aubio -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/include/SDL -lpthread -lm -lfftw3f -ljack -laubio -lgd -L/usr/local/lib -ljack -laubio -ljpeg -lfontconfig -lfreetype -lpng12 -lz -liconv -Wl, -L/usr/local/lib -lSDLmain -lSDL -lSDL_image main.c resize.c -o sonify main.c:48:1: error: unknown type name ‘aubio_pitchdetection_t’ aubio_pitchdetection_t * aubio; ^ main.c: In function ‘init_aubio’: main.c:75:60: error: ‘aubio_pitch_fcomb’ undeclared (first use in this function) aubio = new_aubio_pitchdetection(bufsize, hopsize, 1, sr, aubio_pitch_fcomb, aubio_pitchm_freq); ^ main.c:75:60: note: each undeclared identifier is reported only once for each function it appears in main.c:75:79: error: ‘aubio_pitchm_freq’ undeclared (first use in this function) aubio = new_aubio_pitchdetection(bufsize, hopsize, 1, sr, aubio_pitch_fcomb, aubio_pitchm_freq); ^ main.c:76:2: error: too many arguments to function ‘new_fvec’ aubio_fvec = new_fvec(hopsize, 1); ^ In file included from /usr/include/aubio/aubio.h:164:0, from main.c:27: /usr/include/aubio/fvec.h:77:10: note: declared here fvec_t * new_fvec(uint_t length); ^ main.c: In function ‘process’: main.c:188:22: error: subscripted value is neither array nor pointer nor vector aubio_fvec->data[0][framecount] = (smpl_t) in[i]; ^ make: *** [all] Error 1

These look like C problems, not make. I may be wrong though.

robinpaulson avatar Jan 15 '16 14:01 robinpaulson

this is where I'm at with the Makefile for Linux, which produces the errors above

Makefile for audimg (for Linux)

CC=gcc CFLAGS=-g -lpthread -lm -lfftw3f -ljack -laubio -lgd -I/usr/local/include -I/usr/local/include/aubio -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/include/SDL LDFLAGS=-lpthread -lm -lfftw3f -ljack -laubio -lgd -L/usr/local/lib -ljack -laubio -ljpeg -lfontconfig -lfreetype -lpng12 -lz -liconv -Wl,-framework,Cocoa -L/usr/local/lib -lSDLmain -lSDL -lSDL_image SOURCES=main.c OBJECTS=$(SOURCES:.c=.o)

all: $(CC) $(CFLAGS) $(LDFLAGS) main.c resize.c -o sonify

clean: rm -rf *o main rm -rf sonify

robinpaulson avatar Jan 15 '16 14:01 robinpaulson

now:

Makefile for audimg

CC=gcc CFLAGS=-g -lpthread -lm -lfftw3f -ljack -laubio -lgd -I/usr/include -I/usr/local/include/aubio -D_GNU_SOURCE=1 -D_THREAD_SAFE -I/usr/include/SDL LDFLAGS=-lpthread -lm -lfftw3f -ljack -laubio -lgd -L/usr/lib -ljack -laubio -ljpeg -lfontconfig -lfreetype -lpng12 -lz -liconv -Wl,-framework,Cocoa -L/usr/lib -lSDLmain -lSDL -lSDL_image SOURCES=main.c OBJECTS=$(SOURCES:.c=.o)

all: $(CC) $(CFLAGS) $(LDFLAGS) main.c resize.c -o sonify

clean: rm -rf *o main rm -rf sonify

robinpaulson avatar Jan 15 '16 14:01 robinpaulson

I think the problems I am getting are because sonify was written against aubio-dev v 0.3.2 and the version on my system is 0.4.0. Perhaps we need to manually define local versions of the (old) aubio header files or rewrite the code for version 0.4.0

robinpaulson avatar Jan 15 '16 15:01 robinpaulson

Thanks for looking into this, indeed it seems to fail because of the new version.

Unfortunately 3.2 from https://projects.archlinux.org/svntogit/packages.git/commit/trunk?h=packages/aubio&id=77445c817c8073d33d356416fe04b0d2527d5d64 fails to compile for me.

replacing aubio_pitchdetection_t * aubio; with aubio_pitch_t * aubio; seems to work for gcc at least but I can't find a replacement for aubio_pitch_fcomb - I'm just grep'ing - I'm no C coder.

qubodup avatar Jan 15 '16 16:01 qubodup

aubio dev 3.2 probably has similar errors I.e. built against old versions of other libraries. Our best bet is probably to rewrite for new versions of aubio etc. The functions are all well documented, I reckon we can do it with minimal C knowledge

robinpaulson avatar Jan 15 '16 22:01 robinpaulson

Or, it will probably work fine on say Ubuntu 12.04. Precise, which is still supported

robinpaulson avatar Jan 16 '16 00:01 robinpaulson

Hi @qubodup and @robinpaulson! Thanks for the interest. I haven't worked on this project in a while, and I don't have much time to continue developing it. However, I'd be happy to test out and merge any fixes in the build process.

markandrus avatar Jan 19 '16 07:01 markandrus