用 google test 寫 C 的單元測試 (unit test)

我嘗試用一個簡單的 CMake + google test 寫一個C程式的單元測試 (unit test 本身是C++ 因為 google test 必須要是 C++),確認過 include 路徑正確,link 也有抓到目標的 library。library 裡面也確定有編譯到方程式,這邊用 myfun 替代。不知道為什麼無法正確編譯。錯誤訊息如下:

undefined reference to `myfun()'

希望有人知道究竟出了什麼問題,非常感謝。

C++ link C 要加上 extern "C"

#ifdef __cplusplus
extern "C"{
#endif 
C function declaration
#ifdef __cplusplus
}
#endif 

參考資料 Using C Libraries for C++ Programs - Stack Overflow
這是因為 C++ 跟 C 的 mangle function 的方式不一樣
所以會導致它找不到