首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将动态库链接到我的项目

将动态库链接到我的项目
EN

Stack Overflow用户
提问于 2017-02-24 00:35:53
回答 1查看 67关注 0票数 0

在看了很多帖子后,我真的很困惑。我想要将一个动态库链接到我的cpp代码。

库在/usr/local/include/sbml中,libsbml.so文件可以在/usr/local/lib中找到

我有一个makefile,看起来像这样

代码语言:javascript
复制
SHELL = /bin/sh
VERSION = 5.04.02
CC      = /usr/bin/g++
CFLAGS  = -Wall -g -D_REENTRANT -DVERSION=\"$(VERSION)\"
LDFLAGS = -lsbml

OBJ = main.o SBML.o

prog: $(OBJ)
    $(CC) $(CFLAGS) -o prog $(OBJ) $(LDFLAGS)

%.o: %.c
    $(CC) $(CFLAGS) -c $<

.PHONY : clean
clean :
    -rm edit $(OBJ)

如果我运行makefile,我得到以下错误:(未定义的对SBMLReader::readSBMLFromFile()的引用)

代码语言:javascript
复制
g++    -c -o SBML.o SBML.cpp
/usr/bin/g++ -Wall -g -D_REENTRANT -DVERSION=\"5.04.02\" -o prog main.o SBML.o -lsbml
sbml.o: In Funktion `SBML::readSBML()':
sbml.cpp:(.text+0x129): Nicht definierter Verweis auf `SBMLReader::readSBMLFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
EN

回答 1

Stack Overflow用户

发布于 2017-02-24 00:46:24

未链接库,因为您还需要指定包含so-file的文件夹:

代码语言:javascript
复制
LDFLAGS = -L/usr/local/lib -lsbml

现在它应该链接了,你的未解析的符号也应该消失了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42421405

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档