c++ - C++ 代码未编译并抛出一个巨大的错误!我如何解决它?
问题描述
我下面有一个代码示例代码,它生成某种类型的字符串。我正在使用 gcc,所以我像这样运行我的文件,gcc GenCode.cpp -o output.exe
但它给了我以下错误。我已经尝试重新安装 gcc 但它不起作用。(现在我已经安装了所有的基本包)。我什至也尝试过重新启动计算机。使用 sublime compile 和 visual studio compile 运行,但它不起作用。它以前可以工作,但后来我安装了几个软件包,现在它不起作用
#include <iostream>
#include <vector>
// #include <cstring>
// #include <cstdio>
// #include <future>
#include <string>
#include<fstream>
using namespace std;
void write(string v){
ofstream file;
file.open("code.txt");
file<<v<<endl;
file.close();
}
string codes = string();
char token[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
void gen(string code, int depth){
if (depth >= 16){
cout << code <<endl;
codes = codes + "\n" + code;
}else{
for (size_t i = 0; i < 62;i++){
gen(code+token[i],depth+1);
}
}
}
int main(){
for (int i = 0; i < 62; i++) {
gen(string()+token[i],1);
}
write(codes);
return 0;
}
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x13): undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::basic_ofstream()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x41): undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::open(char const*, std::_Ios_Openmode)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x59): 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&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x60): 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> >&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x67): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x77): undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::close()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x84): undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x95): undefined reference to `std::basic_ofstream<char, std::char_traits<char> >::~basic_ofstream()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0xc3): undefined reference to `std::cout'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0xc8): 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&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0xcf): 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> >&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0xd6): undefined reference to `std::ostream::operator<<(std::ostream& (*)(std::ostream&))'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x11d): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x12a): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x134): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x189): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x19b): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x1b1): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x1fd): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x230): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x23a): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x251): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x269): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x27c): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x28a): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x2a0): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x2c4): undefined reference to `std::ios_base::Init::~Init()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x2d6): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x2f7): undefined reference to `std::ios_base::Init::Init()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text+0x30d): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_]+0x11): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_]+0x22): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(char const*)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_]+0x31): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_]+0x12): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_RKS8_]+0x28): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_]+0x17): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_]+0x31): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned int, char)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_]+0x40): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string()'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_]+0x21): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::append(unsigned int, char)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.text$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_[__ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEOS8_S5_]+0x37): undefined reference to `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&)'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.eh_frame+0x13): undefined reference to `__gxx_personality_v0'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.eh_frame$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_+0x13): undefined reference to `__gxx_personality_v0'
C:\Users\DELL\AppData\Local\Temp\ccC21sev.o:GenCode.cpp:(.eh_frame$_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_S5_+0x13): undefined reference to `__gxx_personality_v0'
collect2.exe: error: ld returned 1 exit status
解决方案
代替
gcc GenCode.cpp -o output.exe
利用
gcc GenCode.cpp -o output.exe -lstdc++
编译器生成目标文件没有错误,但链接器明确抱怨:“未定义的引用......”
在您的 IDE 设置中,也不要忘记将此 ( -lstdc++
) 选项添加到链接器的参数中。
推荐阅读
- java - Flink 中的局部变量
- javascript - cy.click() 只能在单个元素上调用
- django - 查询/注释中的 Django 格式 DecimalField
- java - SqlConnection 在连接测试时抛出错误
- swift - Swift 初始化器
- c++ - vim 和 ctags,未找到具有相同签名的多个定义
- makefile - 是否有任何 make 命令来告诉 gcc 搜索头文件?
- ruby-on-rails - 如何在文本中找到数据库元素?
- sql - SQL 获取所有具有 MAX() 的名称 where month='jan'
- javascript - 如何从嵌套的 ng-repeat 访问项目?