一直都对Linux和Vim情有独钟,其实windows也很不错,因为工作上难免有些情况只能使用windows进行开发,包括有些API或者SDK都只有windows版本,只是用Linux的时候就感觉和计算机特别亲近的感觉,哈哈哈,夸张而言。
至于Vim(这里暂且不讨论vim和emacs谁更好的问题,这个是哲学问题),对比起大多数人估计都习惯使用IDE进行编程,使用vim确实难度会大很多,所以,如果不是专业的开发人员,其实也没有必要使用vim编程,不过有时候想,如果当年大学的编程课教的不是使用IDE编程而是文本编辑器编程,估计对于很多热爱开发的人员来说,效率会高很多,因为用IDE总有很多你完全不知道为什么都错误出现,我也是经过了很长一段时间的积累,加上看了《C++对象模型》和使用了Vim编程之后才慢慢理解了曾经“无厘头”的错误。
最重要的是,一旦精通了Linux下使用Vim编程,从此那些关于链接库和头文件链接的问题都会迎刃而解。
相信如果不用IDE编程的话,必须要会的就是如何使用Makefile去连接头文件、库文件和源文件。
网上有像《Makefile经典教程》这样的教程,不过话说,我自己也看到不少于三遍也没有完全记住,但实际使用中,其实也不是全部都用得上,即使是在大型的团队合作项目中,同时使用多个我提供的Makefile模板也足够应付了,那些高级的功能(如变量、函数使用)更多的是应用于编写SDK或API或者函数库中才会使用到。
#Makefile file DIR_INC = ./include #所有头文件放到此处 DIR_SRC = ./scr #所有源文件放到此处 DIR_OBJ = ./obj #所有中间件文件放到此处 DIR_BIN = ./bin #生成的文件放到此处 DIR_3RD = ./3party #第三方库的头文件放到此处 DIR_LIB = ./lib #第三方库文件的链接库放到此处 SRC = $(wildcard ${DIR_SRC}/*.cc) OBJ = $(patsubst %.cc,${DIR_OBJ}/%.o,$(notdir ${SRC})) TARGET = mian #生成的文件名 BIN_TARGET = ${DIR_BIN}/${TARGET} CC = g++ CXXFLAGS = -g -Wall -I${DIR_INC} -I${DIR_3RD} LDFLAGS = -L${DIR_LIB} LIBS= -lopencv_core -lopencv_highgui #链接库模块,使用空格隔开多个文件 ${BIN_TARGET} : ${OBJ} $(CC) $(OBJ) -o $@ $(LDFLAGS) $(LIBS) ${DIR_OBJ}/%.O:${DIR_SRC}/%.cc $(CC) $(CXXFLAGS) -c $< -o $@ .phony:clean clean: find ${DIR_OBJ} -name *.o -exec rm -rf {}\;
转载请注明出处:http://blog.csdn.net/luoyun614/article/details/42806875
原文地址:http://blog.csdn.net/luoyun614/article/details/42806875