Я не слишком хорошо знаком с тем, как работает связывание, поэтому заранее извиняюсь, если у меня недостаточно деталей.Ссылка на bsd/stdlib.h
Я установил библиотеку Bsd с sudo apt-get install libbsd-dev
на убунту 11.10 я относительно уверен, что это было установлено, в качестве функции человека в кучу/слияние существует (функции Я ищу)
файл C, который я хочу скомпилировать #include <bsd/stdlib.h>
в верхней части файла. Я также #include <stdlib.h>
.
Файл Makefile работает для других библиотек, в том числе time.h дает мне struct timespec
Есть ли какая-то ошибка в предположении, где склонные-прибудет устанавливает libbsd к? Является ли второй stdlib каким-то образом столкновением?
Еще раз извиниться за редкую деталь.
Код для 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
Спасибо! Это сработало! Является ли исправление, в основном, просто перетаскиванием libbsd в правильном порядке, чтобы линкер ответил? Или исправление просто говорит компилятору, что libbsd необходим? (Это было дополнительное назначение кредита на ex35 LCTHW, но xubuntu не имеет сортировки слияния или кучи) –