C ++链接到makefile中的.so文件
C++ Linking to .so file within makefile
我正在尝试从 makefile link 到 .so 库文件。我的项目中有三个文件:main.cpp、shm.h 和 shm.cpp。 main.cpp 包括 shm class。此外,shm class 依赖于存储在 alcommon 库 (libalcommon.so) 中的几个头文件。
我的makefile目前是这样写的。我的想法是 .so 文件应该是 shm.o 的依赖项,因此应该这样包含。
Variables
CXXFLAGS=-Wall -g
CXX = g++
#Executable
#TransformTests: TransformTests.o Transform.o
# $(CXX) $(CXXFLAGS) -o TransformTests TransformTests.o Transform.o
#Dynamics Library Creation
#Object Targets
main.o: main.cpp shm.h
#(CXX) $(CXXFLAGS) -c main.cpp
shm.o: shm.cpp shm.h -L../../naoqi-sdk-2.1.3.3-linux32/lib -lalcommon
$(CXX) $(CXXFLAGS) -c shm.cpp
clean:
rm -f *o main
rm -f *o shm
all: shm main
您需要程序本身作为目标,这就是 .so
的用武之地(在链接期间,而非编译期间)。像这样:
Variables
CXXFLAGS=-Wall -g
CXX = g++
#Executable
#TransformTests: TransformTests.o Transform.o
# $(CXX) $(CXXFLAGS) -o TransformTests TransformTests.o Transform.o
#Dynamics Library Creation
#Object Targets
main.o: main.cpp shm.h
$(CXX) $(CXXFLAGS) -c main.cpp
shm.o: shm.cpp shm.h
$(CXX) $(CXXFLAGS) -c shm.cpp
myprog: shm.o main.o
$(CXX) $(CXXFLAGS) -o myprog shm.o main.o -L ../../naoqi-sdk-2.1.3.3-linux32/lib -lalcommon
clean:
rm -f *o main
rm -f *o shm
all: shm main
我正在尝试从 makefile link 到 .so 库文件。我的项目中有三个文件:main.cpp、shm.h 和 shm.cpp。 main.cpp 包括 shm class。此外,shm class 依赖于存储在 alcommon 库 (libalcommon.so) 中的几个头文件。
我的makefile目前是这样写的。我的想法是 .so 文件应该是 shm.o 的依赖项,因此应该这样包含。
Variables
CXXFLAGS=-Wall -g
CXX = g++
#Executable
#TransformTests: TransformTests.o Transform.o
# $(CXX) $(CXXFLAGS) -o TransformTests TransformTests.o Transform.o
#Dynamics Library Creation
#Object Targets
main.o: main.cpp shm.h
#(CXX) $(CXXFLAGS) -c main.cpp
shm.o: shm.cpp shm.h -L../../naoqi-sdk-2.1.3.3-linux32/lib -lalcommon
$(CXX) $(CXXFLAGS) -c shm.cpp
clean:
rm -f *o main
rm -f *o shm
all: shm main
您需要程序本身作为目标,这就是 .so
的用武之地(在链接期间,而非编译期间)。像这样:
Variables
CXXFLAGS=-Wall -g
CXX = g++
#Executable
#TransformTests: TransformTests.o Transform.o
# $(CXX) $(CXXFLAGS) -o TransformTests TransformTests.o Transform.o
#Dynamics Library Creation
#Object Targets
main.o: main.cpp shm.h
$(CXX) $(CXXFLAGS) -c main.cpp
shm.o: shm.cpp shm.h
$(CXX) $(CXXFLAGS) -c shm.cpp
myprog: shm.o main.o
$(CXX) $(CXXFLAGS) -o myprog shm.o main.o -L ../../naoqi-sdk-2.1.3.3-linux32/lib -lalcommon
clean:
rm -f *o main
rm -f *o shm
all: shm main