Clang and G not compiling correctly

Currently I am having issues compiling programs in Terminal. I have the latest version of the dev tools and updated version of Xcode. This is the current error that I have when I compile with gcc and clang. G++ does not return anything.


Program I am trying to run:


// myfirst.cpp -- displays a message


#include <iostream>

int main()

{

using namespace std;

}

cout << "Come up and C++ me some time.";

cout << endl;

cout << "You won't regret it!" << endl;

return 0;


error message:

Undefined symbols for architecture x86_64:

"std::__1::locale::use_facet(std::__1::locale::id&) const", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::ios_base::getloc() const", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__init(unsigned long, char)", referenced from:

std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in myfirst-3e8045.o

"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()", referenced from:

std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in myfirst-3e8045.o

"std::__1::basic_ostream<char, std::__1::char_traits<char> >::put(char)", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

"std::__1::basic_ostream<char, std::__1::char_traits<char> >::flush()", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

"std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::sentry(std::__1::basic_ostream<char, std::__1::char_traits<char> >&)", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::basic_ostream<char, std::__1::char_traits<char> >::sentry::~sentry()", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::cout", referenced from:

_main in myfirst-3e8045.o

"std::__1::ctype<char>::id", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::locale::~locale()", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::ios_base::__set_badbit_and_consider_rethrow()", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::__1::ios_base::clear(unsigned int)", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"std::terminate()", referenced from:

___clang_call_terminate in myfirst-3e8045.o

"___cxa_begin_catch", referenced from:

___clang_call_terminate in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"___cxa_end_catch", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

"___gxx_personality_v0", referenced from:

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::endl<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) in myfirst-3e8045.o

std::__1::basic_ostream<char, std::__1::char_traits<char> >& std::__1::__put_character_sequence<char, std::__1::char_traits<char> >(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, char const*, unsigned long) in myfirst-3e8045.o

std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> > std::__1::__pad_and_output<char, std::__1::char_traits<char> >(std::__1::ostreambuf_iterator<char, std::__1::char_traits<char> >, char const*, char const*, char const*, std::__1::ios_base&, char) in myfirst-3e8045.o

Dwarf Exception Unwind Info (__eh_frame) in myfirst-3e8045.o

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)


looked online at other forums, no solution beside reinstalling operating system found. i would kind of like to avoid that.

Posted on Jan 29, 2015 7:34 PM

Reply
3 replies

Jan 30, 2015 4:22 AM in response to Mazam1212

You do not need to reinstall the OS. You omitted the only line that has any significance - what you actually typed to attempt to compile this.


It looks like you probably tried: "gcc foo.cpp". That won't work. You have to include the C++ headers and library. The g++ or clang++ executables will do that for you. There is no "G++".


Finally, your code is wrong. You have to move your closing brace to the very end.

Jan 30, 2015 4:54 PM in response to Mazam1212

Typically, if you are just learning, or trying something out, you would compile a single source file with something like this:

clang++ foo.cpp


This would create an executable named "a.out" that you can run in the Terminal with "./a.out"


If you start getting more complex, you can compile multiple files and give it a meaningful name:

clang++ -o foo foo.cpp subfoo.cpp another.cpp


You could run this with just "./foo". Eventually, typing everything out on the command line gets old and tedious. You will have to progress to either a Makefile or an IDE like Xcode.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Clang and G not compiling correctly

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.