我使用数据库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
然后我会将它链接到主要生成文件 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
但它的投掷错误如:
make: * 没有规则来制作目标database.h', needed by
main.o'。停止。
请一些人帮助我解决这个问题。我是linux的新手。
答案 0 :(得分:0)
在LIBPATH
变量赋值结束时,makefile中有一个额外的反斜杠。这导致下一行(testdate:...
目标)被视为LIBPATH
的变量值的一部分。这反过来意味着之后的配方行(g++ -o testdate ...
行)没有定义目标,这就是你得到错误的原因。
删除反斜杠:
LIBPATH = -L../LIBs