您的位置:首页 > 编程语言 > C语言/C++

终于把自制的代码搞进去到eclipse_cpp了。

2015-06-14 13:59 477 查看
linux 中的 c++代码有时候会带有make文件

需要带有make文件的话是这样的。

file->new ->c++ project 然后选择最后一个make file project中的hello world C++ Makefile Project

然后就会生成

Makefile

CXXFLAGS =	-O2 -g -Wall -fmessage-length=0

OBJS =		projectName.o

LIBS =

TARGET =	projectName

$(TARGET):	$(OBJS)
$(CXX) -o $(TARGET) $(OBJS) $(LIBS)

all:	$(TARGET)

clean:
rm -f $(OBJS) $(TARGET)


Makefile文件有一个all:就是build的开头,clean就是要清理时候执行的。

自制的make如下

TARGET = crowbar

CC=gcc
OBJS = \

lex.yy.o\

y.tab.o\

main.o\

interface.o\

create.o\

execute.o\

eval.o\

string.o\

string_pool.o\

util.o\

native.o\

error.o\

error_message.o\

./memory/mem.o\

./debug/dbg.o

CFLAGS = -c -g -Wall -Wswitch-enum -ansi -pedantic -DDEBUG

INCLUDES = \

$(TARGET):$(OBJS)

cd ./memory; $(MAKE);

cd ./debug; $(MAKE);

$(CC) $(OBJS) -o $@ -lm

clean:

rm -f *.o lex.yy.c y.tab.c y.tab.h *~

y.tab.h : crowbar.y

bison --yacc -dv crowbar.y

y.tab.c : crowbar.y

bison --yacc -dv crowbar.y

lex.yy.c : crowbar.l crowbar.y y.tab.h

flex crowbar.l

y.tab.o: y.tab.c crowbar.h MEM.h

$(CC) -c -g $*.c $(INCLUDES)

lex.yy.o: lex.yy.c crowbar.h MEM.h

$(CC) -c -g $*.c $(INCLUDES)

.c.o:

$(CC) $(CFLAGS) $*.c $(INCLUDES)

./memory/mem.o:

cd ./memory; $(MAKE);

./debug/dbg.o:

cd ./debug; $(MAKE);

############################################################

create.o: create.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

error.o: error.c MEM.h crowbar.h CRB.h CRB_dev.h

error_message.o: error_message.c crowbar.h MEM.h CRB.h CRB_dev.h

eval.o: eval.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

execute.o: execute.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

interface.o: interface.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

main.o: main.c CRB.h MEM.h

native.o: native.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

string.o: string.c MEM.h crowbar.h CRB.h CRB_dev.h

string_pool.o: string_pool.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h

util.o: util.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h


因为这里没有 all标签,所以一直报错:

23:05:22 **** Build of configuration Default for project cc ****
make all
make: *** No rule to make target `all'.  Stop.

23:05:22 Build Finished (took 85ms)


加上all后就ok了,加上ok的代码如下:

TARGET = crowbar
CC=gcc
OBJS = \
lex.yy.o\
y.tab.o\
main.o\
interface.o\
create.o\
execute.o\
eval.o\
string.o\
string_pool.o\
util.o\
native.o\
error.o\
error_message.o\
./memory/mem.o\
./debug/dbg.o
CFLAGS = -c -g -Wall -Wswitch-enum -ansi -pedantic -DDEBUG
INCLUDES = \

$(TARGET):$(OBJS)
cd ./memory; $(MAKE);
cd ./debug; $(MAKE);
$(CC) $(OBJS) -o $@ -lm
all:	$(TARGET)
clean:
rm -f *.o lex.yy.c y.tab.c y.tab.h *~
y.tab.h : crowbar.y
bison --yacc -dv crowbar.y
y.tab.c : crowbar.y
bison --yacc -dv crowbar.y
lex.yy.c : crowbar.l crowbar.y y.tab.h
flex crowbar.l
y.tab.o: y.tab.c crowbar.h MEM.h
$(CC) -c -g $*.c $(INCLUDES)
lex.yy.o: lex.yy.c crowbar.h MEM.h
$(CC) -c -g $*.c $(INCLUDES)
.c.o:
$(CC) $(CFLAGS) $*.c $(INCLUDES)
./memory/mem.o:
cd ./memory; $(MAKE);
./debug/dbg.o:
cd ./debug; $(MAKE);
############################################################
create.o: create.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
error.o: error.c MEM.h crowbar.h CRB.h CRB_dev.h
error_message.o: error_message.c crowbar.h MEM.h CRB.h CRB_dev.h
eval.o: eval.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
execute.o: execute.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
interface.o: interface.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
main.o: main.c CRB.h MEM.h
native.o: native.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
string.o: string.c MEM.h crowbar.h CRB.h CRB_dev.h
string_pool.o: string_pool.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h
util.o: util.c MEM.h DBG.h crowbar.h CRB.h CRB_dev.h


只是加了一行: all: $(TARGET)

运行:

把下面这个文件放在test文件夹下

t.crb

for (i = 1; i < 100; i = i + 1) {
if (i % 15 == 0) {
print("FizzBuzz\n");
} elsif (i % 3 == 0) {
print("Fizz\n");
} elsif (i % 5 == 0) {
print("Buzz\n");
} else {
print("" + i + "\n");
}
}


debug as configure 在参数加上 : test/t.crb

so 。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: