gpt4 book ai didi

c++ - makefile 错误,从 src 目录中的所有内容构建

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

我一直在尝试复制我在网上找到的一个 makefile。我目前遇到以下错误:

MyComputer:folderName userName$ make
make: bin/kernel: No such file or directory
make: *** [bin/kernel] Error 1

makefile源码如下:

### Typing 'make' will create the executable file.
CC = gcc
CFLAGS = -g -Wall
LDFLAGS =
LIBS = -lstdc++

TARGET = kernel
SRCDIR = src
OBJDIR = obj
BINDIR = bin
#TARGETDIR = $(BINDIR)/$(TARGET)

SOURCES := $(wildcard $(SRCDIR)/*.cc)
INCLUDES := $(wildcard $(SRCDIR)/*.h)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cc=$(OBJDIR)/%.o)
rm = rm -f

$(BINDIR)/$(TARGET): $(OBJECTS)
@$(LINKER) $@ $(LFLAGS) $(OBJECTS) $(LIBS)
@echo "Linking complete!"

$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cc
@$(CC) $(CFLAGS) -c $< -o $@
@echo "Compiled "$<" successfully!"

#$(CC) $(CFLAGS) $(LFLAGS) -o $(MAIN) $(OBJS) $(LIBS) $@

#make clean removed from this code, unnecessary

我尝试过的事情:

  • $(BINDER)/$(TARGET): 更改为 $(BINDER)(make: bin: No such file or directory )
  • 更改文件夹权限并以 sudo 身份运行(无效)
  • 制作 bin/kernel 文件夹(使用 sudo 和 chmod 777 权限被拒绝)
  • 向我们的黑暗领主克苏鲁祈祷(可能是不可避免的厄运)

最佳答案

您的 Makefile 假定项目目录的结构如下:

.
├── bin
├── Makefile
├── obj
└── src
└── main.cc

我修改了链接阶段,因为您没有定义 $(LINKER):

CC = gcc
CFLAGS = -g -Wall
LDFLAGS =
LIBS = -lstdc++

TARGET = kernel
SRCDIR = src
OBJDIR = obj
BINDIR = bin

SOURCES := $(wildcard $(SRCDIR)/*.cc)
INCLUDES := $(wildcard $(SRCDIR)/*.h)
OBJECTS := $(SOURCES:$(SRCDIR)/%.cc=$(OBJDIR)/%.o)
rm = rm -f

$(BINDIR)/$(TARGET): $(OBJECTS)
@$(CC) -o $@ $(LFLAGS) $(OBJECTS) $(LIBS)
@echo "Linking complete!"

$(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.cc
@$(CC) $(CFLAGS) -c $< -o $@
@echo "Compiled "$<" successfully!"

运行 make 现在将创建内核二进制文件。

.
├── bin
│   └── kernel
├── Makefile
├── obj
│   └── main.o
└── src
└── main.cc

关于c++ - makefile 错误,从 src 目录中的所有内容构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39176137/

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