私はarpackppインターフェイスで作業しています。ライブラリ全体は.h
個のファイルで記述されているため、ライブラリをコンパイルする必要はありません。"多重定義の..." arpackppを使用して私の現在のプロジェクトで
/.../Files/Includes/:私は
main.cpp
、私は次のエラーを取得していない私のファイルは、いくつかの中arpackpp
ヘッダファイルの一部が含まれている場合 - 私が今直面してる問題../../../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:いくつかのarpackpp
ため
:ArpackError::code' /.../Files/Includes/../../../arpack++/include/arerror.h:163: first defined here /tmp/ccruWhMn.o: In function
のstd ::ベクトル> ::のmax_size()constは「複数の定義.o
すべてのファイルをリンクするときに機能します。私がいくつかのスレッドを読んだので、実際には関数のインスタンス化が含まれていて、通常は避けるべきです。 私はライブラリ全体を変更したくないので、arpackpp
クラスを使ってすべてのクラスと関数を含めました。main.cpp
のクラスは非常に面倒です。この問題の回避策はありますか?そして、なぜ警備員は含まれていません(#ifndef...#endif)
この問題を防ぐには?
あなたはおそらくあなたのエラーを詳しく説明できますか... "複数の定義..."は数多くのことを意味する可能性がありますか?あなたはあなたの質問を編集することでそうすることができます。 – silvergasp