【问题标题】:Error with makefile, building from all in src directorymakefile 出错,从 src 目录中的所有内容构建
【发布时间】:2016-08-26 23:56:29
【问题描述】:

我一直在尝试复制我在网上找到的 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 拒绝权限)
  • 向我们的黑暗领主克苏鲁祈祷(可能是不可避免的厄运)

【问题讨论】:

    标签: c++ makefile


    【解决方案1】:

    您的 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
    

    【讨论】:

    • 感谢您的帮助!这行得通。给任何未来读者的小提示:我也搞砸了(这个人的解决方案)第 17 行:LFLAGS 应该是 LDFLAGS
    猜你喜欢
    • 1970-01-01
    • 2021-08-18
    • 2016-02-12
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-03
    • 1970-01-01
    • 2017-08-02
    相关资源
    最近更新 更多