当我尝试使用库(.a) 编译我的文件时,我收到“致命错误:URLInputStream.h:没有此类文件或目录编译终止。' . 我对 C++ 还是很陌生,这看起来很简单,但我无法让它工作。
我试过的编译命令:
g++ inc/Downloader.h lib/libcs240utils.a
g++ inc/Downloader.h -L lib -l cs240utils
g++ inc/Downloader.h -Llib -lcs240utils
g++ src/Downloader.cpp -I inc -L lib -l cs240utils
g++ -c src/Downloader.cpp -I inc -L lib -l cs240utils
我如何编译我的档案:
make lib
g++ -c -o utils/obj/CommandRunner.o utils/src/CommandRunner.cpp -I utils/inc
g++ -c -o utils/obj/FileInputStream.o utils/src/FileInputStream.cpp -I utils/inc
g++ -c -o utils/obj/FileSystem.o utils/src/FileSystem.cpp -I utils/inc
g++ -c -o utils/obj/HTMLToken.o utils/src/HTMLToken.cpp -I utils/inc
g++ -c -o utils/obj/HTMLTokenizer.o utils/src/HTMLTokenizer.cpp -I utils/inc
g++ -c -o utils/obj/HTTPInputStream.o utils/src/HTTPInputStream.cpp -I utils/inc
g++ -c -o utils/obj/StringUtil.o utils/src/StringUtil.cpp -I utils/inc
g++ -c -o utils/obj/URLInputStream.o utils/src/URLInputStream.cpp -I utils/inc
ar cr lib/libcs240utils.a utils/obj/*.o
存档似乎正确构建:
ar t lib/libcs240utils.a
CommandRunner.o
FileInputStream.o
FileSystem.o
HTMLToken.o
HTMLTokenizer.o
HTTPInputStream.o
StringUtil.o
URLInputStream.o
我还尝试了各种选项ar
。如果我指定包含路径-I utils/inc
,那么它将编译并正常工作,因此我想要的文件可以正常工作。我在 StackOverflow 上阅读了许多文章和问题,但我似乎看不出我做错了什么。 有什么想法或建议吗?
注意:我正在编译一个看起来很奇怪的标题。它最初被拆分为.cpp
and .h
,但为了简化问题解决,我将它们合并。拆分时也发生了同样的错误:g++ src/Downloader.cpp -I inc -L lib -l cs240utils