我正在尝试通过下面的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提前感谢您的帮助!
发布于 2015-08-19 11:30:12
这意味着代码中有一个bug :由于有人做了一个假设,缺少一个标头。
您的特定工具链不满足这一假设。
找到有问题的文件(您没有说明是哪个文件)并将#include <ostream>添加到其中。
(__course/Connection/include/DenseMatrix.h似乎是这样的一个文件;可能还有其他文件。)
注:我必须说,尽管有bug,但总的来说,对于大学课程来说,这是非常好的C++代码。我被打动了。
https://stackoverflow.com/questions/32094054
复制相似问题