我在C++類函數中使用c函數時遇到了一個令人困惑的問題。c和C++頭文件的一些問題
我有一個名爲A
的類,它在A.h
中定義並在A.cpp
中實現。我也有B.h
和B.c
它已宣佈和實施一些功能。
裏面A
功能我呼籲它們在B.h
和B.c
定義函數(沒有課B
),我認爲這是一個平常的東西,但我得到的編譯器錯誤,說:Unresolved reference
或別的東西,它指向的功能B
。
我在A.cpp
的開頭有#include "B.h"
,我的編譯器是Linux下的GCC(opensuse 12.3),很抱歉,由於版權問題,我無法向您顯示代碼。
這是一個令我困惑的問題,我不是C++專業人士,但我知道C++頭文件和源文件一起工作的方式,所以如果有人對此有類似的經驗,我只是在尋求幫助。
感謝
C++爲由C生成的那些生成不同的符號。因此,需要使用'extern「C'',因爲這會指示'g ++'編譯器爲後面的鏈接創建C-style符號。有關更多信息,請參見[Wiki名爲Mangling的文章](http://en.wikipedia.org/wiki/Name_mangling)。 –