2016-05-31 8 views
1

AMPL-APIを使用してAMPLをC/C++に統合しようとしています。 EclipseでMinGW CCを使用してコードをコンパイルするMakefileプロジェクトを作成しました。ここでEclipseでC++コードで生成されたexeファイルを実行するとMVCP100D.dllが見つかりません

私のC++コードです:後

#include <iostream> 
#include "ampl/ampl.h" 

using namespace std; 

int main() { 
    ampl::AMPL ampl; 

    // Read the model and data files. 
    std::string modelDirectory = "models"; 
    ampl.read(modelDirectory + "/diet/diet.mod"); 
    ampl.readData(modelDirectory + "/diet/diet.dat"); 

    // Solve 
    ampl.solve(); 

    // Get objective entity by AMPL name 
    ampl::Objective totalcost = ampl.getObjective("total_cost"); 
    // Print it 
    std::cout << "Objective is: " << totalcost.value() << std::endl; 
} 

私のMakefileです:私のプロジェクトディレクトリの

CC = g++ 
CFLAGS = -O2 -g -Wall -fmessage-length=0 
INCLUDES = -I "C:\\Local\\AMPL\\amplide.mswin32\\amplide.mswin32\\amplapi\\include" 
OBJS = AMPL.o 
LIBS = -lampl1.2.2 
TARGET = AMPL.exe 
$(TARGET): $(OBJS) 
    $(CC) -L "./" -o $(TARGET) $(OBJS) $(LIBS) 
AMPL.o: AMPL.cpp 
    $(CC) $(CFLAGS) $(INCLUDES) -c AMPL.cpp 
all: $(TARGET) 
clean: 
    rm -f $(OBJS) $(TARGET) 

内容は以下のとおりです。

  • .settings/
  • モデル/
  • をdiet.mod diet.dat
      • ダイエット/ .cproject
      • .project
      • AMPL.cpp
      • AMPL.exe
      • AMPL.o
      • 私は32ビットのWindows 7マシンを持っていたMakefile

    • ampl1.2.2.lib Eclipse Mars 2.0とVisual Studio 2015の両方がインストールされています。 exeファイルを実行するたびに、MVCP100D.dllが見つかりません。私はWebを見て、このエラーは一般的にVisual C++ Redistributableが見つからない場合に発生することを発見しました。しかし、私のシステムには再配布可能なものがインストールされています。これで私を助けてください。

      更新: Visual Studio 2015で同じコードを実行しようとしましたが、コンパイルすることもできますが、* .exeファイルを実行できません。また、MVCP100D.dllが見つからないという。なぜこのエラーが起こっているのか分かりません、助けてください!

      アップデート:更新されたバージョンをダウンロードするは、Visual Studio 2015で動作しますが、他のポストに指定された個別の問題に直面することは:Undefined reference to (error) in C++ Eclipse but working in Visual Studio 2015

  • +0

    MVCP100D.dllはデバッグDLLです(名前の最後にDがあることに注意してください)。また、再配布可能ファイルとは関係ありません。開発用コンピュータまたは別のコンピュータでこの問題が発生していますか?詳細:https://social.msdn.microsoft.com/Forums/en-US/e128dff6-cef5-4a81-b6de-fcbcaa7a23bb/msvcp100ddll-is-missing?forum=Vsexpressvc –

    +0

    リチャードに感謝の意を表する!これは開発用コンピュータでのみ発生しています。 –

    答えて

    0

    これはAMPL C++ APIのベータ版のバグです。迅速な修正として、http://ampl.com/products/apiからダウンロード可能な更新されたディストリビューションには、これらのDLLが含まれています。永続的な修正は、次の修正リリースで利用可能になります。

    +0

    アップデートをお寄せいただきありがとうございます。本当に役に立ちました。 –

    +0

    あなたの質問に答えると投票/了承することを忘れないでください;-) – vitaut

    +0

    答えをアップアップしたり受け入れることはあまり知られていません。しかし、私は+1を言及します:) 私は今別の問題に直面しています。私のコードはVS2015で動作しますが、Eclipseではエラーが発生します。ここに投稿したり、新しいスレッドを開始することはできますか? –

    関連する問題