将动态库链接到我的项目
Linking dynamic library to my project
阅读了很多文章后,我真的很困惑。我想将动态库链接到我的CPP代码。
库在/usr/local/include/sbml
中并且可以在/usr/local/lib
我有一个看起来像这样
的makefileSHELL = /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())
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-File的文件夹:
LDFLAGS = -L/usr/local/lib -lsbml
现在它应该链接,您的未解决的符号也应该消失。
相关文章:
- cmake在我的项目中所需的所有静态库都不成功
- 我的项目不会像"undefined reference to `grpc::g_core_codegen_interface'"那样使用未定义的引用错误进行编译
- 编译器现在遵循C++14标准,我的项目不再编译神秘的SFML错误
- 如何在我的项目中从 CMAKE 中的同一项目获取多个库
- 为什么我的项目没有保存名称中所做的修改
- 如何自动获取我的项目的路径并删除一些文件
- Qt - 为什么Visual Studio 2019在qml资源中添加10Mb文件后无法再编译我的项目?
- 我必须构建我的项目 2 次,第一次失败,因为它无法打开库
- 我怎样才能简单地将opencv 包含在我的项目中与CMake
- 如何在Cmake中正确查找头路径,以便在我的项目中构建Box2D
- 阻止我的项目调用__CxxFrameHandler3(CRT函数)
- 我的项目中某些仅标头文件不能包含使用 CMake 和 Vscode 的"SFML/Graphics.hpp"
- 如何从支持linux/mac操作系统的第三方代码为我的c#项目创建dll
- 如何在bazel中同时处理外部依赖项和我的项目
- :-1: 错误: LNK1104: 无法打开文件"我的项目.obj"
- 如何使用 Xcode 8.2.1 在我的项目中添加 cpprestsdk 库
- SQLite - 从源代码构建库或将源代码直接包含在我的项目中
- 为什么当我的项目是使用 Android NDK r16 构建时,我会收到来自 Android NDK r11 的错误消息
- 我的C++项目找不到.exe
- 如何在我的项目包中使用C 库GTSAM