Building GNURadio on Mac 10.9.5 using Homebrew Problems

Gurus:
I am trying to build gnuradio on Mac OS 10.9.5 using homebrew and I cant
seem to get past this error:

[ 38%] Generating codec2/codebookd.c
cd /tmp/gnuradio-t1vtKS/build/gr-vocoder/lib && ./generate_codebook
lsp_cbd /tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp1.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp2.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp3.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp4.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp5.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp6.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp7.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp8.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp9.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/dlsp10.txt >
/tmp/gnuradio-t1vtKS/build/gr-vocoder/lib/codec2/codebookd.c
/usr/local/Cellar/cmake/3.0.2/bin/cmake -E cmake_progress_report
/tmp/gnuradio-t1vtKS/build/CMakeFiles
[ 38%] Generating codec2/codebookvq.c
cd /tmp/gnuradio-t1vtKS/build/gr-vocoder/lib && ./generate_codebook
lsp_cbvq /tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/lsp1.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/lsp2.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/lsp3.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/lsp4.txt
/tmp/gnuradio-t1vtKS/gr-vocoder/lib/codec2/codebook/lsp45678910.txt >
/tmp/gnuradio-t1vtKS/build/gr-vocoder/lib/codec2/codebookvq.c
Undefined symbols for architecture x86_64:
“_SDL_CreateYUVOverlay”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
“_SDL_Delay”, referenced from:
gr::video_sdl::sink_s_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_uc_impl.cc.o
“_SDL_DisplayYUVOverlay”, referenced from:
gr::video_sdl::sink_s_impl::copy_plane_to_surface(int, int, short
const*) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::copy_plane_to_surface(int, int,
unsigned char const*) in sink_uc_impl.cc.o
“_SDL_FreeYUVOverlay”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
“_SDL_GetError”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
“_SDL_GetTicks”, referenced from:
gr::video_sdl::sink_s_impl::copy_plane_to_surface(int, int, short
const*) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::copy_plane_to_surface(int, int,
unsigned char const*) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_uc_impl.cc.o
“_SDL_Init”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
“_SDL_LockYUVOverlay”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_uc_impl.cc.o
“_SDL_Quit”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::~sink_s_impl() in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::~sink_s_impl() in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::~sink_uc_impl() in sink_uc_impl.cc.o

“_SDL_SetVideoMode”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
“_SDL_UnlockYUVOverlay”, referenced from:
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::sink_s_impl(double, int, int, unsigned
int, int, int) in sink_s_impl.cc.o
gr::video_sdl::sink_s_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_s_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::sink_uc_impl(double, int, int,
unsigned int, int, int) in sink_uc_impl.cc.o
gr::video_sdl::sink_uc_impl::work(int, std::__1::vector<void
const*, std::__1::allocator<void const*> >&, std::__1::vector<void*,
std::__1::allocator<void*> >&) in sink_uc_impl.cc.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
make[2]: *** [gr-video-sdl/lib/libgnuradio-video-sdl.3.7.6git.dylib]
Error 1
make[1]: *** [gr-video-sdl/lib/CMakeFiles/gnuradio-video-sdl.dir/all]
Error 2
make[1]: /usr/local/Cellar/cmake/3.0.2/bin/c

Anybody have any ideas on how to solve this problem?

Thanks,
Ed

Hi Ed - The actual link command was not included in the output you
provided, so its difficult to say exactly where the issue lies. But,
the basic cause is that libSDL.dylib is not being included in the link
command, and/or it does not contain the various SDL_* symbols that are
not being found, and/or the .PC file for SDL (sdl.pc) does not provide
correct linkage, and/or libSDL was built for the wrong architecture (32
bit, not 64 bit). To the best of my knowledge, the GNU Radio CMake
script for the gr-video-sdl component works correctly when libSDL is not
found (meaning: it disables the component). If you want to work more on
this, email me off list and we can summarize on list as appropriate. -
MLD

On Nov 5, 2014, at 4:55 PM, Ed [email protected] wrote:

I am trying to build gnuradio on Mac OS 10.9.5 using homebrew and I cant seem to
get past this error: