相关疑难解决方法(0)

在OS X上与clang ++链接会生成许多符号未找到的错误

我正在尝试使用clang ++编译器在OS X 10.8上编译一些C++代码(包括C++ 11特性).我有一个生成目标文件的makefile,然后在命令上:

clang++  -o Analysis.so -shared DataFile.o CR39DataFile.o
Run Code Online (Sandbox Code Playgroud)

关于架构x86_64找不到符号,我收到很多错误.该代码在使用g ++的*nix系统上正常工作,并适当地更改编译器标志以支持C++ 11.要编译*.o我这样做:

clang++ -c -Wall -std=c++11 -stdlib=libc++ -I../src ../src/DataFile.cc
Run Code Online (Sandbox Code Playgroud)

编辑:链接命令的输出是:

clang++  -o Analysis.so -shared DataFile.o CR39DataFile.o
Undefined symbols for architecture x86_64:
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::find(char const*, unsigned long, unsigned long) const", referenced from:
CR39DataFile::read_thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in CR39DataFile.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::find(char, unsigned long) const", referenced from:
CR39DataFile::trim(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in CR39DataFile.o
"std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::compare(char const*) const", referenced from:
CR39DataFile::read_thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >) in CR39DataFile.o …
Run Code Online (Sandbox Code Playgroud)

c++ macos clang clang++

27
推荐指数
1
解决办法
3万
查看次数

标签 统计

c++ ×1

clang ×1

clang++ ×1

macos ×1