我看到过类似这样的问题,但每个人都有不同的答案和目录结构,不适合我。GCC链接一个静态库
我的生成文件:
CC = g++
DEBUG = -g -std=c++11
TARGET = main
OBJECT_FILES = BingResultSet.o main.o
INC_PATH = -I HTTPClientLib/include
LIB_PATH = -L HTTPClientLib/lib/
start: clean BingResultSet.o main.o
$(CC) $(DEBUG) $(INC_PATH) $(LIB_PATH) $(OBJECT_FILES) -o $(TARGET)
rm -f *.o
BingResultSet.o: BingResultSet.cpp BingResultSet.h
$(CC) $(DEBUG) $(INC_PATH) $(LIB_PATH) -c BingResultSet.cpp
main.o: main.cpp
$(CC) $(DEBUG) $(INC_PATH) $(LIB_PATH) -c main.cpp
clean:
rm -f $(OBJECT_FILES) $(TARGET)
我的文件结构:
/Desktop/DataMiner/.cpp, .h, and makefile
/Desktop/DataMiner/HTTPClientLib/include/HTTPClient.h
/Desktop/DataMiner/HTTPClientLib/lib/HTTPClient.a
是什么在我的makefile链接我的静态库的正确方法是什么?
makefile在构建之前不应该要求运行'clean'来获得合理的结果。如果你需要你的makefile文件写得不正确。每个目标应创建一个目标名称(不是其他名称)的文件,以便make可以正确地完成其工作。 –
你问如何将'HTTPClient.a'链接到你的输出'main'二进制文件?你知道如何与静态库链接正常工作吗? (这是你如何在没有makefile的情况下手工完成的?) –
不确定你的意思是“手工没有makefile”。我知道如何链接VS上的静态库,但现在我试图在Linux上构建项目,所以gcc上的链接有点不同,给我一些问题。 –