无法链接杜马库
Unable to link duma library
我正在尝试使用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
我没有正确链接杜马吗? 我的 main.cc 文件确实包含以下标头:
#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)
相关文章:
- CMake 库链接使用两个不同的编译器版本
- C++ C 项目中的静态库链接
- CMake - 更改共享库链接选项
- 如果包含映射的静态库与可执行文件和动态库链接,静态映射(变量)是否会被多次释放?
- 与共享库链接时未定义的引用
- 共享对象、符号、C/C++ 库链接和加载
- 使用 CMake 与其他静态库链接的静态库 - 一个有效,一个无效。为什么?
- 如何与 SDL 库链接?
- 确定Qt库链接
- GNURADIO UHD库链接器问题(C++).
- C++ CURL 库链接器错误,但包含正确的库
- 停止共享库链接丢弃未使用的类
- 当其他链接库链接 stdc++ 为动态时,如何将 libstdc++ 链接设置为静态?
- 使用 MINGW 和 CPLEX 库链接从 Linux 编译 Windows 可执行文件
- LLVM 通行证:破坏库未与传递库链接
- 将共享对象与静态库链接
- QT库链接Windows中的错误
- Cmake Mac OSX库链接问题:在Linux上进行编译,但在Mac上进行了编译
- Crypto 库链接错误使用Visual Studio 2017
- 无法链接杜马库