c++ - 将 .so 和 .a 库添加到 Makefile

标签 c++ makefile static-libraries

我有一个看起来像这样的生成文件。

DEFINES=-std=c++0x
INCS_GTK=-I/usr/include/gtk-2.0 -I/usr/include/glib-2.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gtk-2.0/gdk -I/usr/include/pango-1.0 -I/usr/lib/gtk-2.0/include -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/lib/x86_64-linux-gnu/gtk-2.0/include
INCS=-I/usr/include/freetype2 -I/usr/include/mysql -Iframeworks ${INCS_GTK}
LDLIBS=-lconfig++ -lcxcore -lcv -lGL -lGLU -lglut -lhighgui -lSDL -lftgl -lueye_api -lboost_filesystem -lboost_system -lann -lpthread -lflycapture -lglog -lmysqlpp -lmysqlclient -lunittest++
DEBUG=-g -pg
WARNINGS=-Wall -Wextra -pedantic -Wno-long-long #-O3 -Weffc++
BUILDDIR=build
BINDIR=dist

MAINCXX=${shell find -name '*.cxx'}
TARGETS=${MAINCXX:%.cxx=%}
CXXFLAGS=${DEBUG} ${WARNINGS} ${DEFINES} ${INCS}
LDFLAGS=${DEBUG} ${WARNINGS} ${DEFINES}
include IDEconfigs/Makefile/generic.mk

我想将以下静态库路径添加到makefile中。

/usr/local/lib/libYARP_OS.a  /usr/local/lib/libYARP_sig.a  /usr/local/lib/libYARP_math.a  /usr/local/lib/libYARP_dev.a  /usr/local/lib/libYARP_name.a  /usr/local/lib/libYARP_init.a

我该怎么做呢。

最佳答案

让我们考虑一下您的 /usr/local/lib/libYARP_OS.a

您可以做的是,在您的 makefile 中将 -L/usr/local/lib/ 作为变量之一。然后您可以将 -lYARP_OS 附加到 LDLIBS。

-L 是库的路径,-l 是这里的库名 libYARP_OS.a 将作为 -lYARP_OS 传递。

在命令行上,您可以执行以下操作:gcc -o main main.c -L/usr/local/lib/-lYARP_OS。这应该会给你一个想法。

关于c++ - 将 .so 和 .a 库添加到 Makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12054858/

相关文章:

c++ - 非类型模板参数 : how to pass reference to base class object?

CMake:导入的库作为另一个自定义命令或目标的 OUTPUT 或 BYPRODUCTS

c - 如何将两个windows vc静态库合并为一个

makefile - $<(美元符号+左三角括号)在makefile中是什么意思?

c++ - linux - C++ makefile 不使用包含路径

opencv - FreeBSD 上 OpenCV 2.4.3 中的头文件问题

c++ - 带 LTO 的静态链接可执行文件(链接时间优化): how to make it with previously built libraries

c++ - 尝试在 fedora 25 上链接 SFML 应用程序

c++ - ORPG引擎开发,构建代码(C++,2D)

c++ - 带4K显示屏的QT布局输出