首页 > 解决方案 > 使用 makefile 构建和运行时出现“运行时错误 2”

问题描述

我正在使用 SubLime Text3,我有 3 个文件:main.cpp、draft.cpp 和 Draft.h。最近,我尝试使用 makefile 来构建和运行它们,但运行时出现此运行时错误 2。我想知道我是否正确或错误地配置了makefile。 在此处输入图像描述 这是每个文件中的代码:

主文件

int main(){

int n,x;
cout << "Nhap so nguyen n: ";
cin >> n;
cout << "Nhap so nguyen x: ";
cin >> x;
cout << Cal(x,n);
return 0;

}

草稿.h

#ifndef _DRAFT_H_
#define _DRAFT_H_


#include <bits/stdc++.h>
using namespace std;

double Cal(int x,int n);
#endif

草稿.cpp

#include "draft.h"

double Cal(int x,int n){
    double S,tu,mau;
    S = 1; tu = x; mau = 1;
    for (int i = 1; i <=n; ++i)
    {
        /* code */
        tu =tu*x*x;
        mau = mau*(2*i)*(2*i+1);
        S += tu/mau; 

    }
    return S;
}

生成文件.txt

# EXECUTABLES - DO NOT MODIFIED
CC = g++
RM = rm -f
MKDIR = mkdir -p


# PROJECT NAME - will be output executable name
PROJECT = helloworld


# BUILD TARGETS - change your compile flags here
BUILD_DEBUG = Debug
CFLAGS_DEBUG = -g
LFLAGS_DEBUG = 

BUILD_RELEASE = Release
CFLAGS_RELEASE = -O2
LFLAGS_RELEASE = -s

# Add another build target here

# Switch your build target here
BUILD = $(BUILD_RELEASE)
CFLAGS = -Wall $(CFLAGS_RELEASE)
LFLAGS = $(LFLAGS_RELEASE)

# Output directories - DO NOT MODIFIED
OBJDIR = obj/$(BUILD)
EXEDIR = bin/$(BUILD)
DEPDIR = dep
EXE = $(EXEDIR)/$(PROJECT).exe
EXEWIN = bin/${BUILD}/$(PROJECT).exe


SOURCES = $(shell find  -name "*.cpp")
DEPS = $(patsubst ./%,$(DEPDIR)/%,$(patsubst %.cpp,%.d,$(SOURCES)))
OBJS = $(patsubst ./%,$(OBJDIR)/%,$(patsubst %.cpp,%.o,$(SOURCES)))

$(DEPDIR)/%.d: %.cpp | $(DEPDIR)
    $(CC) $(CFLAGS) -MM -MT '$(patsubst %.cpp,$(OBJDIR)/%.o,$<)' $< -MF $@

$(OBJDIR)/%.o: %.cpp $(DEPDIR)/%.d | $(OBJDIR)
    $(CC) $(CFLAGS) -c $< -o $@

.PHONY: run build clean

$(OBJDIR):
    $(MKDIR) $(OBJDIR)

$(DEPDIR):
    $(MKDIR) $(DEPDIR)

$(EXEDIR):
    $(MKDIR) $(EXEDIR)

run:
     start cmd /k "${EXE} &echo &pause"

build: $(OBJS) | $(EXEDIR)
    $(CC) $(OBJS) $(LFLAGS) -o $(EXE)

clean:
    $(RM) $(EXE)
    $(RM) $(OBJS)

-include $(DEPS)

标签: c++makefilebuildruntime-error

解决方案


推荐阅读