【发布时间】:2013-08-24 10:57:05
【问题描述】:
我对链接的工作原理不太熟悉,所以如果我没有足够的细节,请提前道歉。
我已经在 ubuntu 11.10 上安装了带有sudo apt-get install libbsd-dev 的 bsd 库,我比较确定它已经安装,因为存在用于 heap/mergesort 的 man 函数(我正在寻找的函数)
我要编译的 C 文件在文件顶部有 #include <bsd/stdlib.h>。我也是#include <stdlib.h>。
Makefile 适用于其他库,包括 time.h 给我struct timespec
假设 apt-get 将 libbsd 安装到哪里有错误吗?第二个标准库是否以某种方式发生冲突?
再次为疏忽的细节道歉。
Makefile 代码如下:
CFLAGS=-g -O2 -Wall -Wextra -Isrc -rdynamic -DNDEBUG $(OPTFLAGS)
LIBS=-llcthw -lbsd -lrt -ldl $(OPTLIBS)
LDLIBS=-lbsd -lrt -ldl
PREFIX?=/usr/local
SOURCES=$(wildcard src/**/*.c src/*.c)
OBJECTS=$(patsubst %.c,%.o,$(SOURCES))
TEST_SRC=$(wildcard tests/*_tests.c)
TESTS=$(patsubst %.c,%,$(TEST_SRC))
TARGET=build/liblcthw.a
SO_TARGET=$(patsubst %.a,%.so,$(TARGET))
all : $(TARGET) $(SO_TARGET) tests
【问题讨论】: