教你如何在命令行下编译程序之二
2009-03-13 12:58
357 查看
//日期:2009.03.12//作者:goodshell//转载请注明来源:http://blog.csdn.net/goodshell
上次我设置了环境变量,以使得程序能成功地在命令行下编译.现在我举个具体的例子来说明一下,源程序如下:
//print.cpp 读取文件并在屏幕上显示 #include <stdio.h> #include <iostream.h> #include <string.h> char* GetProgName(char *); void ReadIn(FILE *ifp,FILE *ofp); main(int argc,char* argv[]) { char* ProgName; FILE *fp; ProgName=GetProgName(argv[0]); if(argc<2) { fprintf(stderr,"%s: Please enter a file name/n",ProgName); return (-1); } for(int i=1;i<argc;++i) //循环显示多幅图像 { if((fp=fopen(argv[i],"rb"))==NULL) { fprintf(stderr,"%s: Cannot open %s/n",ProgName,argv[i]); continue; } printf("%s is opened:",argv[i]); printf("/n--------------%s-------------------/n",argv[i]); ReadIn(fp,stdout); fclose(fp); printf("/n--------------%s end---------------/n/n/n",argv[i]); } return 0; } char *GetProgName(char *Path) //传进来的是指向执行程序名字路径的指针 { char *s; //返回指向程序名的指针 if((s=strrchr(Path,'//'))!=NULL|| //这里'//'指的是转义字符,就是/,也可以用0X5C表示 (s=strrchr(Path,'/'))!=0) { return (s+1); } else { return (Path); } } void ReadIn(FILE *ifp,FILE *ofp) { char Line[256]; while(fgets(Line,sizeof(Line),ifp)!=NULL) { fputs(Line,ofp); } }
将以上文件保存为print.cpp,然后DOS到当前目录,键入如下命令:
cl print.cpp [回车]
可以看到:
这说明编译成功,产生了目标文件(.obj)和程序文件(.exe)。其实这一步是分为两步来完成的,现在把这两个文件删除,重新键入如下命令:
cl print.cpp -c [回车]
-c参数是只编译不链接,现在可以看到在目录下只生成了目标文件(.obj),而没有.exe可执行文件.
现在再键入如下命令:
cl print.obj [回车]
可以看到.exe文件现在生成了.虽然这一步是使用的cl.exe编译器,实际上它是调用了链接程序link.exe才完成的.当然,现在也可以直接调用链接程序来完成这项工作,删除生成的.exe文件,重新键入以下命令:
link print.obj [回车]
可以发现,可执行文件print.exe又重新生成了.
现在我们来测试一下生成的程序到底执行了什么功能,在当前目录下新建两个文本文件,分别为1.txt和2.txt,随便输入几行文字,在命令提示符下输入以下命令:
print 1.txt 2.txt [回车]
可以看到以下输出:
好了,到这里我们的任务就算完成了,代码很容易理解的,我就不多讲了.
相关文章推荐
- 如何用msvc命令行编译程序
- 如何使用Visual Studio2008从命令行编译链接程序
- 如何在命令行下编译创建VC程序
- VS下如何配置才能使用 cl 命令行方式编译 C/C++ 程序
- 如何在命令行下编译C++程序
- 如何使用Visual Studio2008从命令行编译链接最基本的程序——“Hello World”
- 如何在Windows的命令行下进行程序编译和gdb调试
- 如何使用命令行编译运行java程序
- 如何在命令行下编译创建VC程序
- windows如何在命令行下编译C/C++程序
- 如何在命令行下编译创建VC程序
- 如何在命令行下编译C++程序
- 命令行编译android程序,欢迎探讨命令行如何使用proguard混淆优化代码
- 如何用命令行(CMD)编译运行C 程序—环境变量的设置
- 如何用命令行编译、运行第一个java程序(Hello World!)
- 教你如何在命令行下编译程序之一
- 如何在命令行下编译创建VC程序
- 如何在命令行下编译创建VC程序
- 如何在命令行下编译创建VC程序
- 关于在eclipse中编译后的java小程序如何在命令行窗口运行的说明