2016年7月19日 星期二

undefined reference to 'function()' 錯誤

發生 undefined reference to 'function()' 錯誤可能會有以下的情境

1. 未正確連結函式(靜態/動態)庫

這個通常是link沒找到,或是函式庫的版本對應錯誤。

2.於C++專案中引用C的函式

此解決方案有兩個:

主要都是使用 extern “C”{  }將部份定義包括起來。可利用 #ifdef __cplusplus 搭配作為辨別是否C++專案用

(1)  在使用C函式的函式宣告(Head)檔,將函式使用extern “C”{  } 包起來

 

(2) 在C++專案中,使用extern “C”{  } ,將引用 C函式宣告檔 包起來