字符串的简单使用,C++中函数返回字符串
Posted
技术标签:
【中文标题】字符串的简单使用,C++中函数返回字符串【英文标题】:Simple use of strings, returning strings from functions in C++ 【发布时间】:2019-03-18 03:55:14 【问题描述】:好的。
我已经有一段时间没有写任何 C++ 了。
我生锈了。
那么我在这里做错了什么,为什么?
#include <iostream>
std::string hello()
return "another green world";
int main(int argc, char **argv)
std::cout << hello() << std::endl;
return 0;
然后编译:
gcc test.cpp -o test
给我
/tmp/ccxCCo47.o: In function `hello[abi:cxx11]()':
test.cpp:(.text+0x34): undefined reference to `std::allocator<char>::allocator()'
test.cpp:(.text+0x4b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
test.cpp:(.text+0x57): undefined reference to `std::allocator<char>::~allocator()'
test.cpp:(.text+0x7b): undefined reference to `std::allocator<char>::~allocator()'
/tmp/ccxCCo47.o: In function `main':
test.cpp:(.text+0xcb): undefined reference to `std::cout'
test.cpp:(.text+0xd0): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <char, std::char_traits<char>, std::allocator<char> >(std::basic_ostream<char, std::char_traits<char> >&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
test.cpp:(.text+0xda): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
test.cpp:(.text+0xe5): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
test.cpp:(.text+0xf1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
test.cpp:(.text+0x116): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
/tmp/ccxCCo47.o: In function `__static_initialization_and_destruction_0(int, int)':
test.cpp:(.text+0x156): undefined reference to `std::ios_base::Init::Init()'
test.cpp:(.text+0x16b): undefined reference to `std::ios_base::Init::~Init()'
/tmp/ccxCCo47.o:(.data.rel.local.DW.ref.__gxx_personality_v0[DW.ref.__gxx_personality_v0]+0x0): undefined reference to `__gxx_personality_v0'
collect2: error: ld returned 1 exit status
【问题讨论】:
你如何编译你的代码? 用它更新问题 使用g++
而不是 gcc
来编译 C++ 代码。 g++ test.cpp -o test
.
您使用的是哪个编译器?因为它似乎在 ideone.com 中工作
【参考方案1】:
你需要包含你的头文件。
#include <iostream>
另外,请尝试使用 g++ 而不是 gcc 进行编译。
g++ test.cpp
【讨论】:
我实际上正在这样做。我只是忘了把它包括在上面。 尝试用 g++ 编译? g++ test.cpp 有什么区别? 如果使用g++,默认链接libstdc++。通过***.com/questions/3081815/c-errors-while-compiling @interstar gcc 是 C 编译器,使用 g++ 编译 C++。它们不是同一种语言。以上是关于字符串的简单使用,C++中函数返回字符串的主要内容,如果未能解决你的问题,请参考以下文章