[英]c/objective-c question
我正在努力在我的Objective-C類中的.c文件中使用ac函數。 我已經導入了c文件的標頭。 但是我仍然遇到問題,我的程序無法編譯。
未定義符號:
“ gluUnProject(float,float,float,float const *,float const *,int const *,float *,float *,float *)”,引用自:-[GLView checkCollission:object:]在GLView.o中ld:符號(s)找不到collect2:ld返回1退出狀態
知道如何解決這個問題嗎? 任何幫助當然是感激的。 Qutaibah
該錯誤由鏈接器而不是編譯器發布。 通常,這是由於將代碼編譯為C並從C ++或其他方式包含在內而引起的。
通常,您可以通過在頭文件中添加以下內容來確保頭文件中的函數定義強制任何C ++編譯器使用C語法來解決此問題:
#ifdef __cplusplus
extern "C" {
#endif
... definitions goes here ...
#ifdef __cplusplus
}
#endif
此方法還確保.c文件本身將函數定義視為C,而不是偶然將其編譯為C ++。
如果您不想更改標題,則可以用相同的方式封裝#include語句。 但是,這將無法確保正確編譯.c文件本身。
編輯:只是一個想法:我想您實際上是在編譯.c文件嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.