我正在使用arpackpp接口。整個庫被寫入.h
文件中,因此不需要編譯庫。「多重定義...」在我當前的項目中使用arpackpp
/.../Files/Includes/:當我有一些
arpackpp
頭文件中的一些我的文件,這是不是main.cpp
,我得到了下面的錯誤 - 我現在面臨的問題../../../arpack++/include/arerror.h:163:多重定義ArpackError::Set(ArpackError::ErrorCode, std::string const&)' /.../Files/Includes/../../../arpack++/include/arerror.h:163: first defined here /tmp/ccruWhMn.o: In function
std :: iterator_traits :: iterator_category std :: __ iterator_category(char * const &)': /.../Files/包括/../../../ ARPACK ++ /包含/ arerror.h:163:ArpackError::code' /.../Files/Includes/../../../arpack++/include/arerror.h:163: first defined here /tmp/ccruWhMn.o: In function
的std ::矢量> :: MAX_SIZE()const的'的多個定義:
數arpackpp
鏈接所有.o
文件時起作用。正如我在幾個線程中看到的,問題是我實際上包含了函數的實例化,通常應該避免這些實例化。 因爲我不想更改整個圖書館,所以我在main.cpp
中使用arpackpp
類包含所有類和函數,這些類變得非常混亂。有沒有解決這個問題的方法?爲什麼不包括警衛(#ifndef...#endif)
防止這個問題?
你能否詳細說明你的錯誤......「多重定義......」可能意味着很多事情?你可以通過編輯你的問題來做到這一點。 – silvergasp