gpt4 book ai didi

c++ - 无法链接 duma 库

转载 作者:行者123 更新时间:2023-11-28 06:58:49 26 4
gpt4 key购买 nike

我正在尝试使用 DUMA ( http://duma.sourceforge.net/ ),但似乎无法将其正确链接到我的代码中。这是我的生成文件:

CXX := /home/projects/gcc/482/bin/c++

CXXFLAGS := -std=c++11 -pedantic -Wall -I/home/duma_2_5_15/
LDFLAGS := -L/home/duma_2_5_15/ -lduma

#CXX_DEPEND := -MMD -MF .d.$(subst .cc,,$*) -MP -MT $@
CXX_DEPEND :=

define compile-c++-and-emit-deps
$(CXX) $(CXXFLAGS) $(CXX_DEPEND) -c $< -o $@
endef

%.o : %.cc
$(compile-c++-and-emit-deps)

srcs := $(wildcard *.cc)
objs := $(srcs:.cc=.o)
deps := $srcs:%.cc=.d.%)

default: test

test: $(objs)
$(CXX) $(LDFLAGS) -o $@ $(objs)

#-include $(deps)

当我运行“make”时,我收到以下错误:

> make
/home/projects/gcc/482/bin/c++ -L/home/duma_2_5_15/ -lduma -o test main.o
main.o: In function `main':
main.cc:(.text+0x193c): undefined reference to `_duma_malloc'
main.cc:(.text+0x19f8): undefined reference to `_duma_free'
collect2: error: ld returned 1 exit status
make: *** [test] Error 1

我没有正确链接 duma 吗?我的 main.cc 文件确实包含以下 header :

#include "duma.h"

我确实阅读了 DUMA 主页上的以下注释:

有些系统需要链接器的特殊参数以确保您正在使用 DUMA malloc() 而不是您的 C 库中的那个。

但是我不确定如何从这里开始。这是在 Linux 2.6.18-308.el5 上运行。

谢谢

最佳答案

这是我自己的问题的解决方案。请注意底部倒数第二行代码中添加的“-lduma”。这就是我为使其正确链接而必须添加的全部内容。

CXX := /home/projects/gcc/482/bin/c++

CXXFLAGS := -std=c++11 -pedantic -Wall -I/home/duma_2_5_15/
LDFLAGS := -L/home/duma_2_5_15/ -lduma

#CXX_DEPEND := -MMD -MF .d.$(subst .cc,,$*) -MP -MT $@
CXX_DEPEND :=

define compile-c++-and-emit-deps
$(CXX) $(CXXFLAGS) $(CXX_DEPEND) -c $< -o $@
endef

%.o : %.cc
$(compile-c++-and-emit-deps)

srcs := $(wildcard *.cc)
objs := $(srcs:.cc=.o)
deps := $srcs:%.cc=.d.%)

default: test

test: $(objs)
$(CXX) $(LDFLAGS) -o $@ $(objs) -lduma

#-include $(deps)

关于c++ - 无法链接 duma 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22801226/

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