gpt4 book ai didi

makefile - 通用 Makefile 在 FreeBSD 上不起作用

转载 作者:行者123 更新时间:2023-12-04 23:20:30 30 4
gpt4 key购买 nike

请注意,这不是名为 generic makefile 的其他问题的重复。

我已按照有关通用 makefile 的其他问题的所有说明进行操作,这是我从中得出的代码:

CFLAGS = -c
CC = cc
SOURCES = $(wildcard *.cc)
OBJECTS = $(patsubst %.cc,%.o,%(SOURCES))
EXEC = run

all: build clean

build: $(OBJECTS)
$(CC) $(OBJECTS) -o $(EXEC)

%.o: %.cc
$(CC) $(CFLAGS) $<

clean:
rm *.o

但是,当我执行 make 时文件名为 test.cc在我的目录中,它给了我以下错误:
cc    -o run
cc: error: no input files
*** Error code 1

Stop.
make: stopped in /somewhere

请注意,我使用的是 FreeBSD 和 makecc命令是操作系统附带的命令。

最佳答案

线条

SOURCES = $(wildcard *.cc)
OBJECTS = $(patsubst %.cc,%.o,%(SOURCES))

是 GNU make 语法,FreeBSD 无法理解 make ,它有自己的方言(特别是 $(wildcard)$(patsubst) )。如果您需要编写可移植到许多系统的 makefile,要么要求 gmake 存在并使用 GNUmakefile,要么坚持使用 features of POSIX make .

您可以使用以下命令在 FreeBSD 上安装 GNU make ( gmake )
cd /usr/ports/devel/gmake
make install clean

关于makefile - 通用 Makefile 在 FreeBSD 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28263797/

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