如何将静态库链接到Linux中的Makefile

how to link static library to makefile in linux

本文关键字:Linux 中的 Makefile 链接 静态      更新时间:2023-10-16

我已经使用数据库makefile project/database/makefile 创建了一个静态库

rm -rf libdatabase.a
database.o: database.cpp  database.h
    g++ -c -o database.o database.cpp
    ar rvs libdatabase.a database.o
if [ -f libdatabase.a ];
then
   echo "Database-Library Build Success"
   cp libdatabase.a ../LIBs/
else
    echo "databse-Library Build Failure"
fi

然后,我将在Main Make File Project/Main/MakeFile 中链接它

rm -rf testdate
INCPATH  = -I../database
LIBPATH  = -L../LIBs
testdate:main.o libdatabase.a
    g++ -o testdate libdatabase.a main.o
main.o: main.cpp database.h
    g++ -c -o main.o main.cpp

但是它的投掷错误如下:制作:*没有规则来制作目标database.h', needed by main.o'。停止。

plese一些Coluld为我提供了帮助。我是Linux的新手。

LIBPATH变量分配结束时,您的makefile中有额外的后斜线。这导致下一行(testdate:...目标)被视为LIBPATH变量值的一部分。这又意味着之后的配方行(g++ -o testdate ...行)没有定义目标,这就是为什么您会遇到该错误。

删除后斜线:

LIBPATH  = -L../LIBs