2016-07-04 10 views
-4

In qt MainWindow::on_pushButton_clicked();undefined reference in qt

Wenn ich will, um die Funktion von einer anderen C-Datei nennen, ich habe die .c und .h-Dateien hinzugefügt und # include es.

Aber kompilieren noch zeigen scheitern, es zeigt:

undefined reference to `Load_bmp(char const*, int*, int*, int*) 

Wie ich dieses Problem lösen könnte, danke. Hier ist mein Code: https://drive.google.com/file/d/0B6RzrpHF18PGd3UtWmEzdTQyLUk/view?usp=sharing

+3

den Code in der Frage stellen. Du brauchst wahrscheinlich nur 'extern'. –

+0

Ich habe das extern aber keine Verwendung hinzugefügt :( –

Antwort

2

ist so verwendet cpp Erweiterungsdateien.

Schnellster Weg, für Ihren Fall, ist Ihre bmp.c Datei in bmp.cpp umzubenennen und es wird magisch bauen.

Ein anderer Weg, die verwendet werden muss, ist die Schnittstelle zu ändern Verknüpfung für die Projektdatei angeben, so:

#ifndef _BMP_H_ 
#define _BMP_H_ 

#ifdef __cplusplus 
    extern "C" { 
    #endif 

     unsigned char* Load_bmp(const char *fname_s, int *Height, int *Width, int *Depth); 
     int Save_bmp_8bit(const char *fname_t, unsigned char *image_s, int height, int width); 
     int Save_bmp_24bit(const char *fname_t, unsigned char *image_s, int height, int width); 
     unsigned char * T8bitTo24bit(unsigned char *ima, size_t Height, size_t Width); 
     unsigned char * T24bitTo8bit(unsigned char *ima, size_t Height, size_t Width); 

    #ifdef __cplusplus 
    } 
    #endif 
#endif