0

I have a code sample code below me which generates certain type of strings. I am using gcc so I run my file like this gcc GenCode.cpp -o output.exe but it gives me the following error. I have tried reinstalling gcc but it doesn't work. (For now I have all the basic packages installed). I have even tried as too restarting my computer. Running with sublime compile and visual studio compile but it doesn't work. It used to work before but then I installed few packages and it doesn't work now

#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
Alpha Wolf Gamer
  • 320
  • 2
  • 12

1 Answers1

0

Instead of

gcc GenCode.cpp -o output.exe

use

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

The compiler produces object file without error, but the linker complains explicitly: "Undefined reference to .... "

In your IDE settings also do not forget to add this (-lstdc++) option to linker's parameters.

Viktor Latypov
  • 14,289
  • 3
  • 40
  • 55
  • 5
    Or use `g++` instead, which will do the right thing without needing to explicitly add the C++ library. – Some programmer dude May 05 '21 at 19:36
  • quick question ```#include int main(){ sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!"); sf::CircleShape shape(100.f); shape.setFillColor(sf::Color::Green); while (window.isOpen()){ sf::Event event; while (window.pollEvent(event)){ if (event.type == sf::Event::Closed) window.close(); } window.clear(); window.draw(shape); window.display(); } return 0; }``` How can I run this.`SFML_test.cpp` – Alpha Wolf Gamer May 05 '21 at 19:39
  • 3
    @AlphaWolfGamer That looks like an unrelated question. Ask a separate question for that and explain what the problem is. – Ted Lyngmo May 05 '21 at 19:44
  • ok @TedLungmo I will create a new question – Alpha Wolf Gamer May 06 '21 at 03:06
  • 1
    @Someprogrammerdude I spent a lot of time to fix this by trying different devtoolset on centos 7 and just saw your comment. changing gcc to g++ fixed it all for me :) Thanks a lot! – Sunil Kartikey Mar 02 '23 at 14:01