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