Eth*_*gue 4 freebsd makefile cc
请注意,这与名为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
Run Code Online (Sandbox Code Playgroud)
但是,当我make使用test.cc我的目录中调用的文件执行时,它会给我一个followig错误:
cc -o run
cc: error: no input files
*** Error code 1
Stop.
make: stopped in /somewhere
Run Code Online (Sandbox Code Playgroud)
请注意我在FreeBSD上,make而cc命令是操作系统附带的命令.
线条
SOURCES = $(wildcard *.cc)
OBJECTS = $(patsubst %.cc,%.o,%(SOURCES))
Run Code Online (Sandbox Code Playgroud)
是GNU使得语法,而不是由FreeBSD的理解make,它有自己的方言(特别是$(wildcard)和$(patsubst)).如果你需要将makefile编写为可移植到许多系统,要么需要gmake存在并使用GNUmakefiles,要么坚持使用POSIX make的功能.
你可以gmake在FreeBSD上安装GNU make()
cd /usr/ports/devel/gmake
make install clean
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1791 次 |
| 最近记录: |