我正在尝试使用AMPL将AMPL-API与C / C ++集成。我在Eclipse中创建了一个Makefile项目,它使用MinGW CC来编译代码。
这是我的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)
我的项目目录的内容是:
我有一台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中使用,但面临其他帖子中指定的单独问题:Undefined reference to (error) in C++ Eclipse but working in Visual Studio 2015
答案 0 :(得分:0)
这是AMPL C ++ API测试版中的错误。作为快速修复,可从http://ampl.com/products/api下载的更新发行版包括这些DLL。永久修复将在下一个纠正版本中提供。