-1

I am making app in c++ which is creating gui and writing data into descriptors. At first I created _window which is handler to my gui. Next I created _conn which is object used to write data. I want to have conn in _window so I assigned it.

Now, I want to send some data when I click the button. The problem is I cant even compile the code - I am getting error:

error: undefined reference to `conn::writeData(int, char*, int)'

Cant really tell what is wrong. When I put debugging point in this line it still not compiling. When I delete this line - code is compiling.

This is my code:

//main.cpp
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow _window;
    conn * _conn = new conn(argc, argv);
    _window._conn = _conn;
}

//conn.h
class conn
{
public:
    conn(int argc, char ** argv);
    int sock;
    void writeData(int fd, char * buffer, int count);
};

//conn.cpp
void writeData(int fd, char * buffer, int count){
    //TODO
}

//mainwindow.h
public:
    conn * _conn;


//mainwindow.cpp
void MainWindow::on_pushButton_clicked()
{
    //_conn->writeData(_conn->sock, "hello", 5);
}
O'Neil
  • 3,790
  • 4
  • 16
  • 30
  • 2
    You have defined function `writeData` in cpp file, you should define member function of class `void conn::writeData` in your cpp file. – rafix07 Dec 28 '17 at 19:53

1 Answers1

2

You have linking error as you don't implement conn::writeData.

void writeData(int fd, char * buffer, int count){
    //TODO
}

should be

void conn::writeData(int fd, char * buffer, int count){
    //TODO
}
Jarod42
  • 203,559
  • 14
  • 181
  • 302