在Mac OSX上与`-lrt`链接时出现问题

时间:2018-03-14 02:33:46

标签: c macos gcc linker macos-high-sierra

在我的Mac OSX 10.13上,我总是使用以下makefile来编译C代码:

TARGET = run
LIBS = -O2 -lm -lrt
CC = gcc

.PHONY: default all clean

all: $(TARGET)

OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))
HEADERS = $(wildcard *.h)

%.o: %.c $(HEADERS)
    $(CC) $(CFLAGS) -c $< -o $@

.PRECIOUS: $(TARGET) $(OBJECTS)

$(TARGET): $(OBJECTS)
    $(CC) $(OBJECTS) $(CFLAGS) $(LIBS) -o $@

clean:
    -rm -f *.o
    -rm -f $(TARGET)

请注意,我故意使用-lrt,因为我对某些代码使用了#include <aio.h>。因此,我不断收到此错误:

ld: library not found for -lrt
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [run] Error 1

在Linux系统上运行时,此错误会显示。如何解决这个问题,以便在Mac OSX上运行?

0 个答案:

没有答案