0

C++ 言語と IloCplex フレームワークを使用してコンパイルの問題があります。

私は最初にメイクファイルを使用してプロジェクト全体をコンパイルしようとしましたが、クラスヘッダー呼び出しAbstractModelで予期しないエラーが発生したため、このエラーが他のファイルによるものではないことを確認するために、このコマンドでこのクラスをコンパイルすることにしました:

g++ -o AbstractModel.o -c -I/path/to/cplex/include -I/path/to/concert/include -DIL_STD AbstractModel.cpp

次に、同じエラーメッセージが表示されたことに気付きました.AbstractModelクラスは次のとおりです。

http://pastebin.com/B9YiqKUS

および type.h クラス:

http://pastebin.com/trQ6BDBK

エラーは次のとおりです。

AbstractModel.hpp:12 からインクルードされたファイルでは、AbstractModel.cpp:7 から: type.h:6: エラー: 'typedef' の前にコンストラクタ、デストラクタ、または型変換が必要です。AbstractModel.cpp:7 からインクルードされたファイル: AbstractModel.hpp :50: エラー: 'Vector' は型の名前を指定していません AbstractModel.hpp:51: エラー: 'Vector' は型の名前を指定していません

助言がありますか ?

PS:Cplexはこのコンピューターで正常に動作します。同じコマンドで完全にコンパイルされる同じ種類のクラスを持つ別のプロジェクトがあります。

4

2 に答える 2

1

CustomType.hpp は、AbstractModel.hpp が使用する typedef を定義するため、AbstractModel.hpp の前に #include する必要があります。

貼り付けたものから、それが事実かどうかを確認することは不可能です。

理想的には、AbstractModel.hpp ヘッダーは#include "CustomType.hpp"、それが行われることに依存するのではなく、それ自体で行われます。

于 2012-02-15T13:37:04.257 に答える
0

ヘッダーのインクルードガードが間違っています:

#ifndef CUSTOM_TYPE_H

        typedef IloNumArray Vector;
        typedef IloArray<IloNumArray> Matrix;
        typedef IloNumVarArray VariableVector;    
        typedef IloArray<IloNumVarArray> VariableMatrix;    

        #define CUSTOM_TYPE_H //This should be just under the #ifndef, not here.
#endif
于 2012-02-15T13:05:46.030 に答える