1. 程式人生 > >g++編譯連結c語言檔案報錯“undefined reference ” 的處理

g++編譯連結c語言檔案報錯“undefined reference ” 的處理

用QT寫一介面程式,其中用到另一同事寫的一個小功能,他是用c語言寫的,於是把他的程式碼標頭檔案和原始檔都copy過來了,加入工程中,結果連結的時候就總報錯 undefined reference 某個函式。再三確認了makefile檔案和原始碼,表示沒問題,後來想到或許是g++和gcc是不是編譯後不一樣啊,再上網一查,果然,g++編譯的.o檔案會在函式名加字首C語言好像無法識別(大概是這個意思,具體是怎樣的也沒細研究)

更正的方法就是在標頭檔案的首尾加上下面的紅色部分程式碼就行了,示例

#ifndef  _IFCONFIG_H_H
#define _IFCONFIG_H_H
#ifdef __cplusplus
extern "C"
{
#endif



#include <stdio.h>
#include <netinet/in.h>
#include <stdlib.h>
#include <string.h>

extern char  *G_wsIP[20];
extern int  G_IPCount;
int getIPMASK();//不加紅色部分,就會在連結時找不到函式的定義


#ifdef __cplusplus
}
#endif

#endif