这个问题在这里已有答案:
我有一个简单的程序来测试STL中的“查找”方法。我想找到并打印数字2的索引。这是代码:
#include<algorithm>
#include<functional>
#include<iostream>
#include<vector>
using namespace std;
int main(int argc, char* argv[]){
const int size = 8;
int array[8] = {1,2,3,4,4,5,6,7};
vector<int> my;
vector<int>::iterator loc;
loc = find(my.begin(), my.end(), 2);
cout<<(loc - my.begin())<<endl;
return 0;
}
我在终端编译使用:
gcc main.cpp -o main
这是错误:
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 main-1d0c2e.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 main-1d0c2e.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 main-1d0c2e.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 main-1d0c2e.o
"std::__1::basic_ostream<char, std::__1::char_traits<char> >::operator<<(long)", referenced from:
_main in main-1d0c2e.o
"std::__1::cout", referenced from:
_main in main-1d0c2e.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 main-1d0c2e.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 main-1d0c2e.o
"std::terminate()", referenced from:
___clang_call_terminate in main-1d0c2e.o
"operator delete(void*)", referenced from:
std::__1::__vector_base<int, std::__1::allocator<int> >::~__vector_base() in main-1d0c2e.o
"___cxa_begin_catch", referenced from:
___clang_call_terminate in main-1d0c2e.o
"___gxx_personality_v0", referenced from:
_main in main-1d0c2e.o
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 main-1d0c2e.o
Dwarf Exception Unwind Info (__eh_frame) in main-1d0c2e.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
那有什么不对?谢谢!
发布于 2018-10-09 18:15:23
使用g++
C ++的
您也没有将值分配给矢量
https://stackoverflow.com/questions/-100002864
复制相似问题