如何解决使用带有Makefile的C ++中的另一个库来构建动态库
我正在使用artoolkit5。我对nftSimple进行了更改,并向nftSimple代码中添加了另一个程序,该程序在artoolkit5文件夹和环境中运行良好。但是,我想将nftSimple制作成一个库(包括我添加的程序)。
我正在尝试使用所有代码创建一个动态库。这是我用来构建.so文件的Makefile
UNAME = $(shell uname)
AR_HOME = ../..
AR_CPPFLAGS = -I$(AR_HOME)/include/linux-x86_64 -I$(AR_HOME)/include
AR_LDFLAGS = -L$(AR_HOME)/lib/linux-x86_64 -L$(AR_HOME)/lib
CC=gcc
CXX=g++ -std=c++11
CPPFLAGS = $(AR_CPPFLAGS)
CFLAGS = -O3 -shared -fPIC -march=core2 -DHAVE_NFT=1 -DUSE_GSTREAMER_1 -pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/Opt/opencv/include
CXXFLAGS = -O3 -shared -fPIC -march=core2 -DHAVE_NFT=1 -DUSE_GSTREAMER_1 -pthread -I/usr/include/gstreamer-1.0 -I/usr/lib/x86_64-linux-gnu/gstreamer-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include
LDFLAGS = $(AR_LDFLAGS) -L/usr/lib/x86_64-linux-gnu -L/usr/lib64
LIBS = -lKPM -lAR2 -lARgsub_lite -lARvideo -lAR -lARICP -lAR -lARUtil \
-lglut -lglu -lGL -lX11 -lm -lpthread -ljpeg -lz -ludev -DUSE_GSTREAMER_1 -lgstreamer-1.0 -lgobject-2.0 -lglib-2.0 -ldc1394 -lraw1394
AR=ar
ARFLAGS=rsU
RANLIB = true
TARGET = $(AR_HOME)/bin/libnftsimple.so
HEADERS = \
trackingSub.h \
vectors.h \
nftSimple.h
OBJS = \
nftSimple.o \
ARMarkerNFT.o \
trackingSub.o \
vectors.o
default build all: $(TARGET)
$(OBJS) : $(HEADERS)
$(TARGET): $(OBJS)
$(CXX) -shared -fPIC $(LDFLAGS) -o $@ $^ $(LIBS)
clean:
-rm -f *.o *~ *.bak
-rm $(TARGET)
allclean:
-rm -f *.o *~ *.bak
-rm $(TARGET)
-rm -f Makefile
distclean:
rm -f *.o
rm -f Makefile
我不确定这是否是构建可包含所有依赖项和其他库(位于artoolkit的libs文件夹中)的库的正确方法
我想要的是:一个.so文件,其中包含使代码正常工作所需的所有依赖项和文件夹。这样,我只想#include头文件并在另一个程序中使用函数调用。
我用来编译第二个程序的makefile(将使用artoolkit库):
CC = g++
CFLAGS = -Wall
LDFLAGS = -L. -lnftsimple
OBJFILES = main.o
TARGET = main
all: $(TARGET)
$(TARGET): $(OBJFILES)
$(CC) $(CFLAGS) -o $(TARGET) $(OBJFILES) $(LDFLAGS)
clean:rm -f $(OBJFILES) $(TARGET) *~
不确定这是否正确。请随时提供任何帮助或输入
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。