Używam MacOS X Mavericks z Xcode 5.1.1 wraz z narzędziami wiersza poleceń. Mam kompilacji prostych programów C++ z wykorzystaniem szczęk ++ dostarczonego z Xcode, info wersja: Jabłko LLVM w wersji 5.1 (dzyń-503.0.40) (oparty na LLVM 3.4svn)Domyślnie do lib = stdlibC++ dla języka ++ na Mac OS Mavericks z Xcode?
Co znajdę to, że jeśli spróbuję uruchomić następującą komendę
szczęk ++ -o hello.out hello.cpp
uzyskać następujące błędy:
Undefined symbols for architecture x86_64:
"std::ios_base::Init::Init()", referenced from:
___cxx_global_var_init in hello-2ad0da.o
"std::ios_base::Init::~Init()", referenced from:
___cxx_global_var_init in hello-2ad0da.o
"std::cout", referenced from:
_main in hello-2ad0da.o
"std::basic_ostream<char, std::char_traits<char> >& std::operator<<<std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)", referenced from:
_main in hello-2ad0da.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Jeśli zmienię polecenie
brzękiem ++ -o hello.out -stdlib = libstdC++ hello.cpp
ja nie otrzymuję żadnych błędów.
Czy istnieje sposób, aby "-stdlib = libstdC++" było domyślnym ustawieniem clang ++, z niektórymi ustawieniami konfiguracyjnymi lub pewną zmienną środowiskową? Ponadto, tylko w celu uzyskania informacji, dlaczego pojawia się błąd?
Co to jest 'hello.cpp'? –
To po prostu prosty program w C++ do drukowania "Hello, World". Mogę opublikować źródło, jeśli chcesz, ale zauważ, że działa, jeśli określę stdlibC++. Jedyna biblioteka, którą zawiera to –