某些课程文件无法正确使用Makefile

Cannot properly use the Makefile for some course files

本文关键字:Makefile 程文件 文件      更新时间:2023-10-16

我正在尝试通过以下http://www.cs.columbia.edu/~keenan/Projects/DGPDEC/paper.pdf工作。下面的源文件用于说明发生了什么https://github.com/dgpdec/course。现在我没法让它工作了。下面是我的尝试:

首先,我进入'basecode'文件夹,编辑Makefile以获得正确的包含和库路径。然后我想做但是它给了我错误

命名空间' std '中的'ostream '没有命名类型

我在网上寻找这个错误,但我找不到解决这个问题的方法。在包含的文件libddg_userguide.pdf中,它说我应该在根libddg文件夹中编辑Makefile,但我不知道是哪个文件夹。我很抱歉提出这样一个愚蠢的问题,但我真的被困住了,而且我已经努力了很长时间。以下是我使用的Makefile(在Basecode文件夹中)供参考:

##########################################################################################
# Specify library locations here (add or remove "#" marks to comment/uncomment lines for your platform)
# Linux
DDG_INCLUDE_PATH      = -I/usr/include/ -I/usr/local/include -I/usr/include/suitesparse
DDG_LIBRARY_PATH      = -L/usr/lib -L/usr/local/lib 
DDG_BLAS_LIBS         = -llapack -lblas -lgfortran
DDG_SUITESPARSE_LIBS  = -lspqr -lcholmod -lmetis -lcolamd -lccolamd -lcamd -lamd -lm
DDG_OPENGL_LIBS       = -lglut -lGL -lGLU -lX11
########################################################################################
TARGET = ddg
CC = g++
LD = g++
CFLAGS = -O3 -Wall -Werror -ansi -pedantic  $(DDG_INCLUDE_PATH) -I./include -I./src
LFLAGS = -O3 -Wall -Werror -ansi -pedantic $(DDG_LIBRARY_PATH)
LIBS = $(DDG_OPENGL_LIBS) $(DDG_SUITESPARSE_LIBS) $(DDG_BLAS_LIBS)
########################################################################################
## !! Do not edit below this line
HEADERS := $(wildcard include/*.h)
SOURCES := $(wildcard src/*.cpp)
OBJECTS := $(addprefix obj/,$(notdir $(SOURCES:.cpp=.o)))
all: $(TARGET)
$(TARGET): $(OBJECTS)
    $(LD) $(OBJECTS) -o $(TARGET) $(CFLAGS) $(LFLAGS) $(LIBS)
obj/%.o: src/%.cpp ${HEADERS}
    $(CC) -c $< -o $@ $(CFLAGS) 
clean:
    rm -f $(OBJECTS)
    rm -f $(TARGET)
    rm -f $(TARGET).exe

提前感谢您的帮助!

这意味着代码中有一个错误:头丢失了,因为有人做了一个假设。

您的特定工具链不满足这个假设。

找到有问题的文件(您没有说它是哪个)并将#include <ostream>添加到其中。

(course/Connection/include/DenseMatrix.h似乎是一个这样的文件;)

注意:我必须说,尽管有bug,总的来说,对于大学课程来说,这是非常好的c++代码。给我留下了深刻的印象。