gpt4 book ai didi

c - C 标准库中 mergesort() 的链接错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:06 24 4
gpt4 key购买 nike

这是我的源文件,但是当我编译它时,我得到了对合并排序的 undefined reference 。

#include <lcthw/darray_algos.h>
#include <stdlib.h>

int DArray_qsort(DArray * array,DArray_compare cmp)
{
qsort(array->contents, DArray_count(array), sizeof(void *), cmp);
return 0;
}

int DArray_heapsort(DArray * array, DArray_compare cmp)
{
return heapsort(array->contents, DArray_count(array),
sizeof(void *), cmp);
}

int DArray_mergesort(DArray * array, DArray_compare cmp)
{
return mergesort(array->contents, DArray_count(array),
sizeof(void *), cmp);
}

我不知道如何正确链接 stdlib 排序函数我一直在使用这个通用的 makefile 但它似乎使 stdlib 失败

   CFLAGS=-g -O2 -Wall -Wextra -Isrc    -rdynamic -DNDEBUG $(OPTFLAGS)
LDFLAGS=$(OPTLIBS)
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

OS=$(shell lsb_release -si)
ifeq ($(OS),Ubuntu)
LDLIBS=-llcthw -lbsd -L./build -lm
endif

# The Target Build
all: $(TARGET) tests

dev: CFLAGS=-g -Wall -Isrc -Wall -Wextra $(OPTFLAGS)
dev: all

$(TARGET): CFLAGS += -fPIC
$(TARGET): build $(OBJECTS)
ar rcs $@ $(OBJECTS)
ranlib $@

build:
@mkdir -p build
@mkdir -p bin

最佳答案

heapsortmergesort 不是 C 标准库的一部分。您应该看看 C++ 编译器是否具有这些功能。

关于c - C 标准库中 mergesort() 的链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54779736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com