很久没写makefile了,因为用了cmake。
突然很怀念以前写makefile的时候,写个小程序调试调试,回味一下。
共4个文件
1). test.h
#include <iostream>
using namespace std;
2). test.cpp
#include "test.h"
int main (int argc, char* argv[])
{
cout<<"hello world! "<<endl;
return 1 ;
}
3).makefile.mak
all: ${EXE_DIR}/test
${EXE_DIR}/test:${OBJ_DIR}/test.o
${CC} -o ${EXE_DIR}/test ${OBJ_DIR}/test.o
$(OBJ_DIR)/test.o: test.cpp test.h
${CC} -c test.cpp -o $@
4). mymake.sh
#!/bin/bash
set -x
SHELL=/bin/bash
CURRENT_DIR=./
OBJ_DIR=${CURRENT_DIR}obj
EXE_DIR=${CURRENT_DIR}exe
#建exe,obj文件夹
mkdir ${OBJ_DIR}
mkdir ${EXE_DIR}
#编译
make -f $CURRENT_DIR/makefile.mak $1 CC="g++" CFLAGs="-g" OBJ_DIR="${CURRENT_DIR}obj" EXE_DIR="${CURRENT_DIR}exe"
if [ $? -ne 0 ]; then
echo "Error: make failed"
exit 1
fi
echo "make successful!"