# Building GNURadio on Mac 10.9.5 using Homebrew Problems

**URL:** <https://www.ruby-forum.com/t/building-gnuradio-on-mac-10-9-5-using-homebrew-problems/232941>\
**Category:** GNU Radio\
**Created:** [November 5, 2014, 10:56pm UTC](https://www.ruby-forum.com/t/building-gnuradio-on-mac-10-9-5-using-homebrew-problems/232941 "2014-11-05T22:56:48Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![addis\_a](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@addis\_a](https://www.ruby-forum.com/u/addis_a)\
**Post date:** [November 5, 2014, 10:56pm UTC](https://www.ruby-forum.com/t/building-gnuradio-on-mac-10-9-5-using-homebrew-problems/232941/1 "2014-11-05T22:56:48Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![casper\_the\_ghost](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/58956e/32.png) [@casper\_the\_ghost](https://www.ruby-forum.com/u/casper_the_ghost)\
**Post date:** [November 6, 2014, 1:21am UTC](https://www.ruby-forum.com/t/building-gnuradio-on-mac-10-9-5-using-homebrew-problems/232941/2 "2014-11-06T01:21:09Z")

</div>

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 [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

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