Re: [Vim-cn:1522] 如何设置makeprg来用Vim编译C文件

37 views
Skip to first unread message
Message has been deleted

lubiao

unread,
Jan 2, 2008, 7:41:39 PM1/2/08
to Vim...@googlegroups.com
On Jan 2, 2008 10:42 PM, crb...@gmail.com <crb...@gmail.com> wrote:
> 我想让我在Vim中键入":make"后执行以下语句:
> gcc.exe "D:\Cruby\VC++\a\abc.c" -o "D:\Cruby\VC++\a\abc.exe" -g3 -
> I"D:\Study\Dev-Cpp\include" -L"D:\Study\Dev-Cpp\lib" -g3
>
> 我应该怎么弄呢?
>

为什么不写 Makefile

crb...@gmail.com

unread,
Jan 2, 2008, 9:25:52 PM1/2/08
to Vim.cn
一个快捷键就能编译肯定要比写一个Makefile要来得方便点~ 我也就是图个方便

lubiao

unread,
Jan 3, 2008, 1:46:22 AM1/3/08
to Vim...@googlegroups.com
On Jan 3, 2008 10:25 AM, crb...@gmail.com <crb...@gmail.com> wrote:
> 一个快捷键就能编译肯定要比写一个Makefile要来得方便点~ 我也就是图个方便
>


写 Makefile 和 按快捷键 完全不是一码事。
应该比较写Makefile 和 修改 makeprg 。

Yongwei Wu

unread,
Jan 3, 2008, 1:54:50 AM1/3/08
to Vim...@googlegroups.com
修改Vim的选项和修改Makefile区别并不大啊。Makefile的功能要强大得多。你这样的方法只能适合单文件的小项目,而且换到其它目录去make其他项目又要改一次选项。使用Makefile的话不管在那个项目(目录)都一样::make。


--
Wu Yongwei
URL: http://wyw.dcweb.cn/

crb...@gmail.com

unread,
Jan 3, 2008, 8:11:53 AM1/3/08
to Vim.cn
不错,试了一下,也挺方便,正在研究怎么写Makefile~


On Jan 3, 2:54 pm, "Yongwei Wu" <wuyong...@gmail.com> wrote:
> 修改Vim的选项和修改Makefile区别并不大啊。Makefile的功能要强大得多。你这样的方法只能适合单文件的小项目,而且换到其它目录去make其-他项目又要改一次选项。使用Makefile的话不管在那个项目(目录)都一样::make。

公子

unread,
Jan 14, 2008, 8:16:38 PM1/14/08
to Vim.cn
#Makefile
#
#
#==============================================
# Makefile (C) YANG Wen 2007-08-16
#==============================================


#Define compiler and file FILESUFFIX
CC = $(CROSS_COMPILE)gcc
FILESUFFIX = c

#Define compile options
CCFLAG = -Wall -pedantic -std=c99
DEBUG_CCFLAG = -g -D_DEBUG
RELEASE_CCFLAG = -O2


#Define link options
DEBUG_LIB =
RELEASE_LIB =


#add all *.$(FILESUFFIX) files as source files
#add all *.h files as header files
SOURCEFILELIST = $(wildcard *.$(FILESUFFIX))
HEADERFILELIST = $(wildcard *.h)


#Generate object files' name from source files
DEBUG_OBJECTLIST = $(patsubst %.$(FILESUFFIX), debug/%.o, $
(SOURCEFILELIST))
RELEASE_OBJECTLIST = $(patsubst %.$(FILESUFFIX), release/%.o, $
(SOURCEFILELIST))


#Define target files' name
TARGET = $(notdir $(CURDIR))
DEBUG_TARGET = debug/$(TARGET)d
RELEASE_TARGET = release/$(TARGET)


.PHONY : all prepared prepare debug release ctags run clean

#Build all targets
all : debug release

debug : prepared $(DEBUG_TARGET)

release : prepare $(RELEASE_TARGET)

prepared :
@-mkdir -p debug

prepare :
@-mkdir -p release

#Build DEBUG target
$(DEBUG_TARGET) : $(DEBUG_OBJECTLIST)
$(CC) $(CCFLAG) $(DEBUG_CCFLAG) -o $(DEBUG_TARGET) $
(DEBUG_OBJECTLIST) $(DEBUG_LIB)

#Define DEBUG objects dependence
$(DEBUG_OBJECTLIST) : debug/%.o : %.$(FILESUFFIX) $(HEADERFILELIST)
$(CC) $(CCFLAG) $(DEBUG_CCFLAG) -c -o $@ $<

#Build RELEASE target
$(RELEASE_TARGET) : $(RELEASE_OBJECTLIST)
$(CC) $(CCFLAG) $(RELEASE_CCFLAG) -o $(RELEASE_TARGET) $
(RELEASE_OBJECTLIST) $(RELEASE_LIB)

#Define RELEASE objects dependence
$(RELEASE_OBJECTLIST) : release/%.o : %.$(FILESUFFIX) $
(HEADERFILELIST)
$(CC) $(CCFLAG) $(RELEASE_CCFLAG) -c -o $@ $<

#Create tags
ctags:
@rm -f tags
ctags *.h *.$(FILESUFFIX)

#Run DEBUG_TARGET
run :
@echo -e "\n\n====run the debug version app : [$(CURDIR)/$
(DEBUG_TARGET) $(APPARGV)]====\n\n"
@$(CURDIR)/$(DEBUG_TARGET) $(APPARGV)

#Clean all objects and targets
clean :
-rm -rf debug release

#The END


On 1月3日, 下午9时11分, "crb...@gmail.com" <crb...@gmail.com> wrote:
> 不错,试了一下,也挺方便,正在研究怎么写Makefile~
>
> On Jan 3, 2:54 pm, "Yongwei Wu" <wuyong...@gmail.com> wrote:
>
>
>
> > 修改Vim的选项和修改Makefile区别并不大啊。Makefile的功能要强大得多。你这样的方法只能适合单文件的小项目,而且换到其它目录去make其--他项目又要改一次选项。使用Makefile的话不管在那个项目(目录)都一样::make。- 隐藏被引用文字 -
>
> - 显示引用的文字 -
Reply all
Reply to author
Forward
0 new messages