代码改变世界

mac缺少librt问题记录

2018-08-29 11:35  轩脉刃  阅读(2009)  评论(0编辑  收藏  举报

在mac下编译一个程序的时候遇到错误

ld: library not found for -lrt

librt.so主要是glibc对real-time部分的支持.所以一般含有#include<time.h>头文件的代码,编译的时候需要加上-lrt

makefile里面有使用-lrt的命令

网上有很多文章意思是mac的lib和include库需要引用下:https://blog.csdn.net/u010487504/article/details/9004706

但是即使引用了也是没有用的。因为:https://issues.apache.org/jira/browse/THRIFT-3121

可以使用类似程序判断是否支持lrt

lrt:=$(shell echo "int main() {}"|gcc -x c - -lrt 2>&1)
ifeq ($(lrt),)
  lrtlibs:=-lrt
else
  lrtlibs:=
endif


LIBS:=                    \
    -lpthread $(lrtlibs)