【发布时间】:2019-07-07 18:11:07
【问题描述】:
我使用的是 ubuntu 18。 我已经安装了代码块 ide 和裸 gnu gcc 编译器(命令行)
gcc 版本 7.4.0(Ubuntu 7.4.0-1ubuntu1~18.04.1)
代码块16.01
我写了一个非常简单的代码来创建和打印一个字符串变量
代码块(带有内置 gnu gcc 编译器)编译成功。但是裸 gcc 编译器失败了
我也尝试过包含 iostream 和 stdio
#include <string>
using namespace std;
int main() {
string a = "I am learning C++";
printf("%s",a.c_str());
return 0;
}
codeblocks 成功编译它并给出输出而不会引发错误。以及sololearn在线编译器也有
我正在学习 C++
我进入cpp文件所在的文件夹并给出以下命令
gcc string_var.cpp -o string_var.out
bt 裸 gcc 编译器给出了一些我无法理解的很长的编译器错误
/tmp/ccen8bfp.o: In function `main':
string_var.cpp:(.text+0x20): undefined reference to `std::allocator<char>::allocator()'
string_var.cpp:(.text+0x37): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&)'
string_var.cpp:(.text+0x43): undefined reference to `std::allocator<char>::~allocator()'
string_var.cpp:(.text+0x4f): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::c_str() const'
string_var.cpp:(.text+0x74): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
string_var.cpp:(.text+0x96): undefined reference to `std::allocator<char>::~allocator()'
string_var.cpp:(.text+0xb0): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
/tmp/ccen8bfp.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
【问题讨论】:
-
如果使用printf()函数,需要在文件顶部添加#include
。
标签: c++ gcc compiler-errors codeblocks