linux时间函数maketime,如何构建需要clock_gettime函数的Linux/OSX makefile

当我尝试在Linux中构建项目时,我得到了Error: undefined symbol clock_gettime.所以我想出了我需要添加-lrt到构建命令(gcc).但是,现在它不会在OS X中编译:ld: library not found for -lrt.我不知道这个函数究竟在哪里被调用,因为它在静态链接代码中,但它似乎在没有librt的OS X中工作得很好.链接的代码可能使用了替代#if __APPLE__或替代.

是否有任何方法可以指示gcc只librt在需要时链接,或者是否存在?如果没有,如何使用特定于操作系统的命令创建Makefile?我没有使用autoconf或类似的东西.

Makefile相当复杂,但这里是操作部分:

CC := g++

# In this line, remove -lrt to compile on OS X

LFLAGS := -lpthread -lrt

CFLAGS := -c -Wall -Iboost_build -Ilibtorrent_build/include -Iinc

OBJDIR := obj

SRCDIR := src

SRC := $(wildcard $(SRCDIR)/*.cpp)

OBJS := $(patsubst $(SRCDIR)/%.cpp,$(OBJDIR)/%.o,$(SRC))

# Note that libtorrent is built with a modified jamfile to place the

# libtorrent.a file in a consistent location; otherwise it ends up somewhere

# dependent on build environment.

all : $(OBJS) libtorrent_build boost_build

$(CC) -o exec $(LFLAGS) \

$(OBJS) \

libtorrent_build/bin/libtorrent.a \

boost_build/stage/lib/libboost_system.a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值