閱讀很多帖子後,我感到非常困惑。 我想將動態庫鏈接到我的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())
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
問題解決了。我做了一個初學者的錯誤。我安裝了庫包,但是我忘了安裝帶有所有頭文件的-dev包。安裝第二個包後,我的makefile工作。 –