gpt4 book ai didi

c++ - 使用 C++ makefile 链接文件

转载 作者:行者123 更新时间:2023-11-28 01:51:16 25 4
gpt4 key购买 nike

制作文件:

INCLUDE = -I/usr/X11R6/include/
LIBDIR = -L/usr/X11R6/lib

COMPILERFLAGS = -Wall
CC = g++
CFLAGS = $(COMPILERFLAGS) $(INCLUDE)
LIBRARIES = -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm

All: project

project: main.o landscape.o point.o
$(CC) $(CFLAGS) -o $@ $(LIBDIR) $< $(LIBRARIES)

clean:
rm *.o

我有 landscape.cpp、landscape.h、point.cpp、point.h 和 main.cpp 文件我在我的 main.cpp 文件中包含“point.h”,我得到:

g++ -Wall -I/usr/X11R6/include/-o project -L/usr/X11R6/lib main.cpp -lX11 -lXi -lXmu -lglut -lGL -lGLU -lm/tmp/ccdpJ8HH.o: 在函数 main' 中:
main.cpp:(.text+0x1c0): undefined reference
Point::Point(int, int)'collect2:错误:ld 返回 1 退出状态Makefile:15:目标“项目”的配方失败make: *** [project] 错误 1

最佳答案

project: main.o landscape.o point.o
$(CC) $(CFLAGS) -o $@ $(LIBDIR) $< $(LIBRARIES)

这里需要链接所有的.o文件。您在此处的规则将仅使用 main.o 文件。因为$<只是第一个依赖项。 $^应该适用于所有三个。所以尝试:

project: main.o landscape.o point.o
$(CC) $(CFLAGS) -o $@ $(LIBDIR) $^ $(LIBRARIES)

关于c++ - 使用 C++ makefile 链接文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42938483/

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