在Eclipse中运行C++代码生成的exe文件时缺少MVCP100D.dll



我正在尝试使用AMPL-API将AMPL与C/C++集成。我在Eclipse中创建了一个Makefile项目,该项目使用MinGWCC来编译代码。

这是我的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.dat
      • diet.mod
  • .cp项目
  • .项目
  • AMPL.cpp
  • AMPL.exe
  • AMPL.o
  • ampl2.2.2.lib
  • Makefile

我有一台32位的Windows 7机器,上面安装了Eclipse Mars 2.0和Visual Studio 2015。每当我运行exe文件时,它都会说缺少MVCP100D.dll。我在网上查了一下,发现这个错误通常发生在缺少Visual C++Redistributable的时候。但是我的系统已经安装了可重新分发的软件。请帮我解决这个问题。

更新:我试图在Visual Studio 2015上执行相同的代码,它也可以编译,但我无法运行*.exe文件。它还说MVCP100D.dll不见了。我不知道为什么会出现这个错误,请帮忙!!

更新:下载更新版本可以在Visual Studio 2015中使用,但面临另一篇文章中指定的单独问题:在C++Eclipse中未定义的引用(错误),但可以在Visual Studio2015 中使用

这是AMPL C++API测试版中的一个bug。作为快速修复,更新后的分发版可从下载http://ampl.com/products/api包括这些DLL。永久性修复将在下一个更正版本中提供。

最新更新