# Trying to build on OS X Maverics 10.9.2 Xcode 5.1 - Undefined symbols for architecture x86\_64

**URL:** <https://www.ruby-forum.com/t/trying-to-build-on-os-x-maverics-10-9-2-xcode-5-1-undefined-symbols-for-architecture-x86-64/240178>\
**Category:** GNU Radio\
**Created:** [March 31, 2014, 11:56pm UTC](https://www.ruby-forum.com/t/trying-to-build-on-os-x-maverics-10-9-2-xcode-5-1-undefined-symbols-for-architecture-x86-64/240178 "2014-03-31T23:56:55Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![musicdenotation](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/ea666f/32.png) [@musicdenotation](https://www.ruby-forum.com/u/musicdenotation)\
**Post date:** [March 31, 2014, 11:56pm UTC](https://www.ruby-forum.com/t/trying-to-build-on-os-x-maverics-10-9-2-xcode-5-1-undefined-symbols-for-architecture-x86-64/240178/1 "2014-03-31T23:56:55Z")

</div>

Hi

Im trying to build GnuRadio on OS X 10.9.2 Im assuming the "Undefined  
symbols for architecture x86\_64 is related to some mismatch in  
libraries. Could somebody please offer some suggestions on how to debug  
the issue. The last few lines of the build are:

[13%] Building CXX object  
gnuradio-runtime/lib/CMakeFiles/test-gnuradio-runtime.dir/qa\_runtime.cc.o  
Linking CXX shared library libtest-gnuradio-runtime.dylib  
Undefined symbols for architecture x86\_64:  
“CppUnit::SourceLine::SourceLine(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&, int)”,  
referenced from:  
qa\_fxpt::t0() in qa\_fxpt.cc.o  
qa\_fxpt::t1() in qa\_fxpt.cc.o  
qa\_fxpt::t2() in qa\_fxpt.cc.o  
qa\_fxpt::t3() in qa\_fxpt.cc.o  
qa\_fxpt\_nco::t0() in qa\_fxpt\_nco.cc.o  
qa\_fxpt\_nco::t1() in qa\_fxpt\_nco.cc.o  
qa\_fxpt\_vco::t0() in qa\_fxpt\_vco.cc.o  
…  
“CppUnit::AdditionalMessage::AdditionalMessage(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&)”,  
referenced from:  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_buffer.cc.o  
void CppUnit::assertEquals(long const&, long const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_buffer.cc.o  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_io\_signature.cc.o  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_circular\_file.cc.o  
void CppUnit::assertEquals(bool const&, bool const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_vmcircbuf.cc.o  
“CppUnit::assertDoubleEquals(double, double, double,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&)”,  
referenced from:  
qa\_fxpt::t0() in qa\_fxpt.cc.o  
qa\_fxpt::t1() in qa\_fxpt.cc.o  
qa\_fxpt::t2() in qa\_fxpt.cc.o  
qa\_fxpt::t3() in qa\_fxpt.cc.o  
qa\_fxpt\_nco::t0() in qa\_fxpt\_nco.cc.o  
qa\_fxpt\_nco::t1() in qa\_fxpt\_nco.cc.o  
qa\_fxpt\_vco::t0() in qa\_fxpt\_vco.cc.o  
…  
“CppUnit::Message::Message(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&,  
std::\_\_1::basic\_string\<char, std::\_\_1::char\_traits,  
std::\_\_1::allocator \> const&)”, referenced from:  
qa\_fast\_atan2f::t2() in qa\_fast\_atan2f.cc.o  
t0\_body() in qa\_buffer.cc.o  
t1\_body() in qa\_buffer.cc.o  
t3\_body() in qa\_buffer.cc.o  
qa\_logger::t1() in qa\_logger.cc.o  
CppUnit::ExceptionTestCaseDecoratorstd::invalid\_argument::runTest()  
in qa\_runtime.cc.o  
“CppUnit::Asserter::failNotEqual(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \>,  
std::\_\_1::basic\_string\<char, std::\_\_1::char\_traits,  
std::\_\_1::allocator \>, CppUnit::SourceLine const&,  
CppUnit::AdditionalMessage const&, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \>)”, referenced  
from:  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_buffer.cc.o  
void CppUnit::assertEquals(long const&, long const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_buffer.cc.o  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_io\_signature.cc.o  
void CppUnit::assertEquals(int const&, int const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_circular\_file.cc.o  
void CppUnit::assertEquals(bool const&, bool const&,  
CppUnit::SourceLine, std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) in  
qa\_vmcircbuf.cc.o  
“CppUnit::TestCase::TestCase(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&)”,  
referenced from:  
qa\_fast\_atan2f::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_sincos::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_vmcircbuf::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_math::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in  
qa\_runtime.cc.o  
qa\_logger::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_fxpt\_vco::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_fxpt\_nco::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
…  
“CppUnit::TestSuite::TestSuite(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \>)”, referenced  
from:  
qa\_runtime::suite() in qa\_runtime.cc.o  
qa\_buffer::suite() in qa\_runtime.cc.o  
qa\_io\_signature::suite() in qa\_runtime.cc.o  
qa\_circular\_file::suite() in qa\_runtime.cc.o  
qa\_fxpt::suite() in qa\_runtime.cc.o  
qa\_fxpt\_nco::suite() in qa\_runtime.cc.o  
qa\_fxpt\_vco::suite() in qa\_runtime.cc.o  
…  
“CppUnit::TestSuiteBuilderContextBase::getTestNameFor(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) const”,  
referenced from:  
qa\_fast\_atan2f::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_sincos::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_vmcircbuf::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_math::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&) in  
qa\_runtime.cc.o  
qa\_logger::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_fxpt\_vco::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
qa\_fxpt\_nco::addTestsToSuite(CppUnit::TestSuiteBuilderContextBase&)  
in qa\_runtime.cc.o  
…  
“CppUnit::Test::findTestPath(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&,  
CppUnit::TestPath&) const”, referenced from:  
vtable for CppUnit::TestCaller\<qa\_fast\_atan2f\> in qa\_runtime.cc.o  
vtable for qa\_fast\_atan2f in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_sincos\> in qa\_runtime.cc.o  
vtable for qa\_sincos in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_vmcircbuf\> in qa\_runtime.cc.o  
vtable for qa\_vmcircbuf in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_math\> in qa\_runtime.cc.o  
…  
“CppUnit::Test::resolveTestPath(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) const”,  
referenced from:  
vtable for CppUnit::TestCaller\<qa\_fast\_atan2f\> in qa\_runtime.cc.o  
vtable for qa\_fast\_atan2f in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_sincos\> in qa\_runtime.cc.o  
vtable for qa\_sincos in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_vmcircbuf\> in qa\_runtime.cc.o  
vtable for qa\_vmcircbuf in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_math\> in qa\_runtime.cc.o  
…  
“CppUnit::Test::findTest(std::\_\_1::basic\_string\<char,  
std::\_\_1::char\_traits, std::\_\_1::allocator \> const&) const”,  
referenced from:  
vtable for CppUnit::TestCaller\<qa\_fast\_atan2f\> in qa\_runtime.cc.o  
vtable for qa\_fast\_atan2f in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_sincos\> in qa\_runtime.cc.o  
vtable for qa\_sincos in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_vmcircbuf\> in qa\_runtime.cc.o  
vtable for qa\_vmcircbuf in qa\_runtime.cc.o  
vtable for CppUnit::TestCaller\<qa\_math\> in qa\_runtime.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]: \*\*\* [gnuradio-runtime/lib/libtest-gnuradio-runtime.dylib] Error  
1  
make[1]: \*\*\*  
[gnuradio-runtime/lib/CMakeFiles/test-gnuradio-runtime.dir/all] Error 2  
make: \*\*\* [all] Error 2

---

<div class="post-metadata">

**Author:** ![Shane\_MacPhillamy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/779978/32.png) [@Shane\_MacPhillamy](https://www.ruby-forum.com/u/Shane_MacPhillamy)\
**Post date:** [April 1, 2014, 1:27am UTC](https://www.ruby-forum.com/t/trying-to-build-on-os-x-maverics-10-9-2-xcode-5-1-undefined-symbols-for-architecture-x86-64/240178/2 "2014-04-01T01:27:26Z")

</div>

Hi Shane - With just the information provided, given that CMake is  
trying to link against CppUnit means that that library was found  
somewhere. Hence, chances are that CppUnit is being linked to libstdc++  
while GNU Radio is trying to use libc++ – the different C++ runtime  
libraries tend to generate these sorts of errors. There is a small  
chance that CppUnit was compiled for the wrong architecture (e.g.,  
x86\_32 [i386], PPC, or PPC\_64), but I think the different C++ runtime  
library is more likely. If you want more help on this, email me  
off-list and we can summarize once we figure out the actual issue(s). -  
MLD
