gpt4 book ai didi

c++ - 将动态库链接到我的项目

转载 作者:行者123 更新时间:2023-11-27 23:56:17 26 4
gpt4 key购买 nike

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

库在/usr/local/include/sbml并且 libsbml.so 文件可以在 /usr/local/lib

中找到

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

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() 的 undefined reference )

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

最佳答案

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

LDFLAGS = -L/usr/local/lib -lsbml

现在它应该链接并且您未解析的符号也应该消失。

关于c++ - 将动态库链接到我的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42421405/

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