我試圖編譯一個簡單的測試程序,並且該頭文件我包括的一個具有的typedef關於未定義的引用的typedef
typedef const char* CharConst;
typedef unsigned int MyBool;
在頭文件以後以下,某些功能被定義克++錯誤使用這個typedef。這樣的東西:
MyBool add_att(CharConst attr, const char*);
我得到一個錯誤,當我試圖讓這個函數的調用,與像一個電話:
CharConst myconst = "some text";
const char* more_text = "more text";
add_att(myconst, more_text);
的錯誤是:未定義的引用`MyClass的:: add_att (char const *,char const *)'
似乎編譯器不喜歡第一個參數在頭文件中被typedef'd的事實。但它並不介意MyBool。編譯器只會抱怨CharConst定義。
有沒有簡單的方法可以解決這個問題?我能做什麼的任何線索或提示?我正在運行gcc版本4.6.2
在定義中顯示函數簽名。也不要在指針類型上使用'typedef',這會讓人感到困惑,而且這些問題總是伴隨着它。 –
您是否在您嘗試調用該函數的文件中包含聲明/定義了'add_att()'的頭文件? 'add_att()'是在一個庫中定義的,你忘了鏈接到那個庫? –
'typedef'不應該有任何區別(不要混淆任何試圖閱讀代碼的人)。它看起來好像你沒有實現這個函數,或者你沒有鏈接到包含它的實現的文件。 –