我试图在我的本地机器上使用 linux 的窗口子系统来编译一个在我学校的 linux 计算机上运行的 c++ 程序,但是当我尝试编译时出现以下错误:
$ make
In file included from cs221util/HSLAPixel.cpp:9:
cs221util/HSLAPixel.h:11:10: fatal error: 'iostream' file not found
#include <iostream>
^~~~~~~~~~
1 error generated.
Makefile:23: recipe for target 'HSLAPixel.o' failed
make: *** [HSLAPixel.o] Error 1
到目前为止,我已经安装了以下项目。我应该从这里做什么?
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install build-essential
sudo apt-get install aptitude
sudo apt-get install libstdc++6
生成文件:
EXE = pa3
EXETest = pa3test
OBJS_EXE = HSLAPixel.o lodepng.o PNG.o main.o toqutree.o stats.o
OBJS_EXET = HSLAPixel.o lodepng.o PNG.o testComp.o toqutree.o stats.o
CXX = clang++
CXXFLAGS = -std=c++1y -stdlib=libc++ -c -g -O0 -Wall -Wextra -pedantic
LD = clang++
#LDFLAGS = -std=c++1y -stdlib=libc++ -lc++abi -lpthread -lm
LDFLAGS = -std=c++1y -stdlib=libc++ -lpthread -lm
all : pa3 pa3test
$(EXE) : $(OBJS_EXE)
$(LD) $(OBJS_EXE) $(LDFLAGS) -o $(EXE)
$(EXETest) : $(OBJS_EXET)
$(LD) $(OBJS_EXET) $(LDFLAGS) -o $(EXETest)
#object files
HSLAPixel.o : cs221util/HSLAPixel.cpp cs221util/HSLAPixel.h
$(CXX) $(CXXFLAGS) cs221util/HSLAPixel.cpp -o $@
PNG.o : cs221util/PNG.cpp cs221util/PNG.h cs221util/HSLAPixel.h cs221util/lodepng/lodepng.h
$(CXX) $(CXXFLAGS) cs221util/PNG.cpp -o $@
lodepng.o : cs221util/lodepng/lodepng.cpp cs221util/lodepng/lodepng.h
$(CXX) $(CXXFLAGS) cs221util/lodepng/lodepng.cpp -o $@
stats.o : stats.h stats.cpp cs221util/HSLAPixel.h cs221util/PNG.h
$(CXX) $(CXXFLAGS) stats.cpp -o $@
toqutree.o : toqutree.h toqutree.cpp stats.h cs221util/PNG.h cs221util/HSLAPixel.h
$(CXX) $(CXXFLAGS) toqutree.cpp -o $@
testComp.o : testComp.cpp cs221util/PNG.h cs221util/HSLAPixel.h toqutree.h
$(CXX) $(CXXFLAGS) testComp.cpp -o testComp.o
main.o : main.cpp cs221util/PNG.h cs221util/HSLAPixel.h toqutree.h
$(CXX) $(CXXFLAGS) main.cpp -o main.o
clean :
-rm -f *.o $(EXE) $(EXETest)
最佳答案
在我安装了 libc++ 之后,它就起作用了。谢谢!
sudo apt-get install libc++abi-dev
关于c++ - 在 WSL 上编译时找不到“iostream”文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55390435/