gpt4 book ai didi

c++ - 生成文件并将库链接到不同的文件夹中

转载 作者:行者123 更新时间:2023-11-30 02:07:34 25 4
gpt4 key购买 nike

我在 StackOverflow 上搜索了一下并尝试了一些建议,但到目前为止还没有解决问题。

我正在为一个学校项目制作一个 makefile,作为我项目的一部分,我正在生成一个静态库并链接到它。当编译器到达静态库中包含的 header 时,它会抛出错误。代码只是 #include "StringUtil.h"

所以在 makefile 中我有这些相关的代码部分

LINKFLAGS=-Llib/ -lHTMLtools

bin : lib $(BIN_FILE)
lib : $(LIB_OBJ_FILES)
ar r lib/libHTMLtools.a $(LIB_OBJ_FILES)

$(BIN_FILE) : $(OBJ_FILES) #This is only obj/crawler.o for now
g++ -o bin/crawler obj/crawler.o
obj/crawler.o : src/crawler.cpp inc/crawler.h
g++ -c -static $(LINKFLAGS) -o obj/crawler.o -I inc src/crawler.cpp

因此,每当我运行 make bin 命令时,它都会按预期生成 lib.libHTMLtools.a,但是当它到达
g++ -c -static $(LINKFLAGS) -o obj/crawler.o -I inc src/crawler.cpp
行返回此错误。

src/crawler.cpp:2:24: fatal error: StringUtil.h: No such file or directory compilation terminated.

如有任何帮助或建议,我们将不胜感激!

最佳答案

在 C++ 中,库文件是不够的。编译源代码时不使用它们,仅在链接时使用。要编译源文件,您需要包含标题。但是编译器需要知道在哪里可以找到它。尝试像这样将 -I utils/inc 添加到你的最后一行

g++ -c -static $(LINKFLAGS) -o obj/crawler.o -I inc -I utils/inc src/crawler.cpp

关于c++ - 生成文件并将库链接到不同的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7681813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com