我正在使用
Xcode 5.1.1运行MacOS X Mavericks,包括命令行工具.
我正在使用Xcode提供的clang编译简单的C程序,版本信息是:
Apple LLVM版本5.1(clang-503.0.40)(基于LLVM 3.4svn)
我正在使用Xcode提供的clang编译简单的C程序,版本信息是:
Apple LLVM版本5.1(clang-503.0.40)(基于LLVM 3.4svn)
我发现如果我尝试运行以下命令
clang++ -o hello.out hello.cpp
我收到以下错误:
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)
如果我将命令更改为
clang++ -o hello.out -stdlib=libstdc++ hello.cpp
我没有得到任何错误.
有没有办法让“-stdlib = libstdc”成为clang的默认值,或者使用某些配置设置或某些环境变量?另外,仅为了我的信息,为什么我会收到错误?
解决方法
MACOSX_DEPLOYMENT_TARGET可能就是您要找的.
export MACOSX_DEPLOYMENT_TARGET = 10.8应该使clang默认为libstdc而不是libc.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。