2017-12-28 8 views
-1

私はc++にguiを作成し、データを記述子に書き込んでいます。最初は_windowを作成しました。これは私のguiのハンドラです。次に、データを書き込むために使用されるオブジェクトである_connを作成しました。私はconn_windowに入れたいので割り当てました。オブジェクトのメソッドへの未定義の参照

ここで、ボタンをクリックするといくつかのデータを送信します。問題は私もコードをコンパイルすることはできません - 私はエラーが発生しています:

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

本当に何が間違っているのか教えてください。私がこの行にデバッグポイントを置くと、まだコンパイルされません。この行を削除すると、コードがコンパイルされます。

これは私のコードです:

//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); 
} 
+2

あなたが定義した関数であるべき。 – rafix07

答えて

2

あなたがconn::writeDataを実装していないとして、あなたはエラーをリンクしています。

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

はwriteData`のcppファイルに、あなたのcppファイルにクラス `無効でCONNのメンバ関数:: writeData`を定義する必要があります`

void conn::writeData(int fd, char * buffer, int count){ 
    //TODO 
} 
関連する問題