当前位置: 技术问答>linux和unix
Makefile文件的问题
来源: 互联网 发布时间:2015-08-30
本文导语: 我写了如下的Makefile文件 # Makefile SSL_INCS = -I/usr/local/ssl/include SNMP_PP_INCS = -I/usr/local/snmp++/include SSL_LIBS = -L/usr/local/ssl/lib -lcrypto SNMP_PP_LIBS = -L/usr/local/snmp++/lib -lsnmp++ CXX = g++ CXXFLAGS = CC = gcc CCFLAGS = snmpGe...
我写了如下的Makefile文件
# Makefile
SSL_INCS = -I/usr/local/ssl/include
SNMP_PP_INCS = -I/usr/local/snmp++/include
SSL_LIBS = -L/usr/local/ssl/lib -lcrypto
SNMP_PP_LIBS = -L/usr/local/snmp++/lib -lsnmp++
CXX = g++
CXXFLAGS =
CC = gcc
CCFLAGS =
snmpGet.o: snmpGet.cpp predefination.h
$(CXX) -c snmpGet.cpp $(SNMP_PP_INCS)
snmpGetNext.o: snmpGetNext.cpp predefination.h
$(CXX) -c snmpGetNext.cpp $(SNMP_PP_INCS)
get-selfip.o: get-selfip.c predefination.h
$(CC) -c get-selfip.c
get-gateway.o: get-gateway.c predefination.h
$(CC) -c get-gateway.c
clean:
rm -f *.o
但是每次make只会产生一个.o文件。
请问一下我的Makefile文件错在哪里,应该怎么写?(网上有自动生成Makefile的Example,但是产生出来的东西太多,不易新手理解,我想手写Makefile文件,请高手指点。谢谢!)
# Makefile
SSL_INCS = -I/usr/local/ssl/include
SNMP_PP_INCS = -I/usr/local/snmp++/include
SSL_LIBS = -L/usr/local/ssl/lib -lcrypto
SNMP_PP_LIBS = -L/usr/local/snmp++/lib -lsnmp++
CXX = g++
CXXFLAGS =
CC = gcc
CCFLAGS =
snmpGet.o: snmpGet.cpp predefination.h
$(CXX) -c snmpGet.cpp $(SNMP_PP_INCS)
snmpGetNext.o: snmpGetNext.cpp predefination.h
$(CXX) -c snmpGetNext.cpp $(SNMP_PP_INCS)
get-selfip.o: get-selfip.c predefination.h
$(CC) -c get-selfip.c
get-gateway.o: get-gateway.c predefination.h
$(CC) -c get-gateway.c
clean:
rm -f *.o
但是每次make只会产生一个.o文件。
请问一下我的Makefile文件错在哪里,应该怎么写?(网上有自动生成Makefile的Example,但是产生出来的东西太多,不易新手理解,我想手写Makefile文件,请高手指点。谢谢!)
|
make只会处理第一个target,因此必须把所有要make处理的target放在一个target中或是用其他方法解决。在你的例子中则可在最开始加上一行:
all: snmpGet.o snmpGetNext.o get-selfip.o get-gateway.o
则make时会把所有的target均处理。
细节的说明建议还是找点资料看吧。怕麻烦的话就找些有例子的跟着做应该也可以了。
all: snmpGet.o snmpGetNext.o get-selfip.o get-gateway.o
则make时会把所有的target均处理。
细节的说明建议还是找点资料看吧。怕麻烦的话就找些有例子的跟着做应该也可以了。
|
正如楼上所说,你把需要更新的东西放在target后的关联中,这样Makefile能够自动搜索这些更新文件。
|
用手工写makefile不仅麻烦而且容易出错!建议用qmake自动产生。
用法:
qmake -project
qmake
make
//就ok了
用法:
qmake -project
qmake
make
//就ok了