当前位置: 技术问答>linux和unix
makefile得到的可执行文件执行什么也没有
来源: 互联网 发布时间:2017-04-09
本文导语: 写了一个简单的makefile,执行很正常,生成可执行文件。但是这个可执行文件启动什么也没有,就掉了。 不用makefile,用cc编译命令的可执行文件就能很好的执行。高手给看看makefile有什么问题。 我给main函数一开始就...
写了一个简单的makefile,执行很正常,生成可执行文件。但是这个可执行文件启动什么也没有,就掉了。
不用makefile,用cc编译命令的可执行文件就能很好的执行。高手给看看makefile有什么问题。
我给main函数一开始就printf("begin.....nn")
makefile编译生成的可执行文件test执行情况:
[USER]$test
[USER]$
cc编译命令直接生成的可执行文件a.out执行情况:
[USER]$a.out
begin.......
cfg=[test.cfg]
1111111111111111
port=4590
222222222222222222
start 2
makefile内容:
LOBJ=cfgFile.o dataContainer.o queue.o receive.o main.o
all:test
test:$(LOBJ)
cc -o $@ -lpthread $(LOBJ)
main.o:main.c
cc -c -lpthread main.c
cfgFile.o:cfgFile.c
cc -c -lpthread cfgFile.c
dataContainer.o:dataContainer.c
cc -c -lpthread dataContainer.c
queue.o:queue.c
cc -c -lpthread queue.c
receive.o:receive.c
cc -c -lpthread receive.c
#clean:
# rm *.o
cc命令直接编译:
cc -lpthread cfgFile.c dataContainer.c queue.c receive.c main.c
不用makefile,用cc编译命令的可执行文件就能很好的执行。高手给看看makefile有什么问题。
我给main函数一开始就printf("begin.....nn")
makefile编译生成的可执行文件test执行情况:
[USER]$test
[USER]$
cc编译命令直接生成的可执行文件a.out执行情况:
[USER]$a.out
begin.......
cfg=[test.cfg]
1111111111111111
port=4590
222222222222222222
start 2
makefile内容:
LOBJ=cfgFile.o dataContainer.o queue.o receive.o main.o
all:test
test:$(LOBJ)
cc -o $@ -lpthread $(LOBJ)
main.o:main.c
cc -c -lpthread main.c
cfgFile.o:cfgFile.c
cc -c -lpthread cfgFile.c
dataContainer.o:dataContainer.c
cc -c -lpthread dataContainer.c
queue.o:queue.c
cc -c -lpthread queue.c
receive.o:receive.c
cc -c -lpthread receive.c
#clean:
# rm *.o
cc命令直接编译:
cc -lpthread cfgFile.c dataContainer.c queue.c receive.c main.c
|
LOBJ=cfgFile.o dataContainer.o queue.o receive.o main.o
all:test
test:$(LOBJ)
cc -o $@ $^ -lpthread
main.o:main.c
cc -c main.c
cfgFile.o:cfgFile.c
cc -c cfgFile.c
dataContainer.o:dataContainer.c
cc -c dataContainer.c
queue.o:queue.c
cc -c queue.c
receive.o:receive.c
cc -c receive.c
#clean:
# rm *.o
|
LOBJ=cfgFile.o dataContainer.o queue.o receive.o main.o
all:test
test:$(LOBJ)
cc -o $@ -lpthread $(LOBJ)
.c.o:
cc -c -lpthread $
all:test
test:$(LOBJ)
cc -o $@ -lpthread $(LOBJ)
.c.o:
cc -c -lpthread $