首页 > 解决方案 > 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

标签: c++gcc

解决方案


代替

gcc GenCode.cpp -o output.exe

利用

gcc GenCode.cpp -o output.exe -lstdc++

编译器生成目标文件没有错误,但链接器明确抱怨:“未定义的引用......”

在您的 IDE 设置中,也不要忘记将此 ( -lstdc++) 选项添加到链接器的参数中。


推荐阅读