【发布时间】:2014-05-11 12:02:38
【问题描述】:
我正在尝试在 C++ 中使用std::list 类,我需要使用clang++ 来编译程序。 g++ 可以很好地编译以下程序,但我不知道如何使用 clang++ 编译/链接它:
#include <iostream>
#include <list>
int main(){
std::list<int> L;
L.push_back(10);
std::cout << L.back() << std::endl;
return 0;
}
我尝试了clang++ -lstdc++ listTest.cpp,但仍然收到以下错误:
/tmp/listTest-3175a9.o: In function `std::list<int, std::allocator<int> >::_M_insert(std::_List_iterator<int>, int const&)':
listTest.cpp:(.text._ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi[_ZNSt4listIiSaIiEE9_M_insertESt14_List_iteratorIiERKi]+0x31): undefined reference to `std::__detail::_List_node_base::_M_hook(std::__detail::_List_node_base*)'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Clang 版本:
clang version 3.4 (tags/RELEASE_34/final)
linux版本:
LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Red Hat Enterprise Linux Server release 6.5 (Santiago)
【问题讨论】:
-
顺便说一句
std::list不是一个类。 -
不是类是什么意思?
-
这是一个类模板
-
你解决过这个问题吗?
-
@BrianVandenberg 我没有在我的特定系统上解决它;似乎
clang可能安装不正确,但我无法控制安装,因此无法修复它。为那个特定项目迁移到 g++,结果还不错。