• Borland C++建立工程菜鸟教程


    实在不敢相信,学校里现在教学用的编译器还是七八十年代的老古董,难道这东西更能培养从没接触过代码的学生深刻理解c语言的运行流程,不得不说像VisualStdio这样的重量级开发环境确实屏蔽了很多底层的运行流程,既然这样,我就勉为其难出一个绝版教程吧!

    C语言编写小程序时可以直接在开发环境中新建一个源文件,编译运行就OK了,而开发比较大型的项目时要用建立工程的方式来组织各种文件,一般包括源文件(.c)、头文件(.h)、资源文件(如:图片、音频、文本文件)。

    为了养成良好的编程习惯,让程序文件结构清晰明了,我们首先新建一个工作目录,(不要老是把程序放在C:BORLANDBIN里面)那么这个工作目录应该放在哪里呢?当然是哪里都可以,只要你的开发环境Borland C知道在哪里就行,按照你们提供的开发工具,DISK_C文件夹是虚拟的C盘,因此工作目录只要在DISK_C文件夹内都可以,不论在哪里,包括子目录下,为了方便查看,我们直接在DISK_C的根目录下新建一个test的文件夹作为工作目录。

    1 开发工具

    2 新建工作目录

    有了工作目录,我们就可以编写程序了,我们的程序最终是一个可调试的工程(Project),

    打开Borland C(以后简称BC

    在操作之前我们要先设置几个目录,这样BC就能知道我们的工作目录在哪里。

    首先修改工作空间,菜单File->Change dir….,Directory Name改成我们前面的建立的工作目录,你的工作目录放在哪里,这里就填哪里,我们是放在Disk_C(是虚拟的C盘)的根目录下的,这里就改成C: est,点击OK按钮保存。

    这里还有一个问题,就是我们下次启动Borland C时,工作目录又会变回C:BORLANDBIN,为了避免每次启动都要重新配置工作目录,我们需要修改默认工作目录,配置文件是dosbox文件夹内的bc31.conf文件,用任一文本编辑器(如:记事本)打开,找到最后几行中,在cd BORLANDCBIN这一行前面添加#号注释掉,在下面添加一句cd est,即你的工作目录,保存文件,重启Borland C,会发现工作目录一直是cd est

    接下来,菜单Options->Directories,这里有四个编辑框,第一项是BC自带的包目录(编译环境自带的头文件(如:stdio.h)都放在这里面);第二项是BC自带的库目录,里面是一些自带的静态链接库文件。前面两项不懂事什么含义不要紧,只要设置成下面一样就行,(一般默认就是)。后面两项才是我们要具体设置的,第三项,Output Directory,是工程的输出目录,里面会存放工程编译和运行产生的文件(如.obj文件),原则上可以设置成Disk_C里面的任意一个目录,但是既然我们建立了一个工作目录,为了方便查看和管理,当然是设置在工作目录里,如果输出的文件很多,我们可以在工作目录test文件夹里面再新建一个文件夹作为输出目录,鉴于C课设的程序还不是太大,我们可以直接将输出文件目录设置在test文件夹。第四项是源代码目录,顾名思义就是告诉BC源代码存放的地方,同理我们可以在test文件夹里新建一个文件夹专门存放源文件,但是鉴于C课设的程序还是不够大,我们直接放在test文件夹内。

    OK,保存。

     

    终于我们可以开始建立工程了, 方法是先在开发环境中建立一个空工程,再添加源文件和头文件。

    菜单Project->Open project

    输入工程名,这里是test.PRJ,下图的下方蓝色区域我们看到这个文件会放在test工作目录下。OK保存。

    工程建立好如上图,这个工程是一个空的工程,没有任何源文件,接下来我们就要编写源文件,有三种思路。

    方法一:直接用BC的编辑器新建文件,再添加到工程

    通过File->New,新建一个文件,输入源代码,保存,将文件名改成你要的名字。,如下面的test.cpp实现一个简单的加法。

    这个文件是可以单独编译运行的,但是并没有添加到test工程中,这从上图中下方的Project:TEST 可以看出来,里面并没有包含任何文件,要想把这个文件添加到工程中,首先将光标定位到上图的下方区域,会出现一条绿色的线,接着菜单Project->Add item,找到要添加的文件,这里是test.cpp(我们可以一次性多编写多个源文件再一次性添加),Add添加到工程,Done完成本次操作。添加完成后我们会发现显示区下方的工程栏目的文件列表里出现了刚添加的文件表示添加成功。如果想移除已经添加的文件,可在Project->Delete item中操作。

    我们可以再次编译运行,关于菜单中CompileBuild all的区别,前一项是编译当前文件,后一项是编译整个工程。

    方法二:直接新建文件到工程

    第一种方法新建的文件需要后来添加到工程,那么如何一开始就新建一个包含在工程的文件。

    第一步,定位到显示区下方的工程栏目(工程栏目出现绿条),不定位到工程栏目,Project菜单项有些子菜单是不能选择的。

    接着菜单Project->Add item,直接在Name编辑框输入文件名,点击Add添加,Done完成操作,可以一次性添加多个文件。如这里我添加了test1.cpp文件.

     

    我们可以在显示区下方的文件列表里双击文件名来编辑文件。比如我们把主函数写在TEST.CPP中,来调用TEST1.CPP文件中加法运算函数,TEST1.CPP 文件中我们实现两个函数(加法和减法),并将函数声明放在头文件TEST1.H中。头文件可以用File->New来建立,只不过在保存时要将文件名改成TEST1.H(注意修改后缀),经过我测试头文件只需要放在工作目录下,不需要添加到工程,否则会报错重复定义,程序会自动搜索当前目录(工作目录或者和源代码同目录)。注意随时保存File->Save All。操作中我发现文件名大小写是无所谓的。

     

    注意test1.h是自己定义的头文件,在程序中引用时要用双引号,表示在当前目录下。

     

    Build allRun可以出结果。或者直接Run   

     

    至此我们建立工程完成了一个小程序,我们可以打开我们的工作目录,会发现我们建立的文件、工程文件、输出文件都在里面。

    方法三:使用第三方编辑器编写程序文件,再在BC中新建工程并添加文件。(推荐)

    前面两种方法都是直接用BC自带的编辑器来编辑程序,我们都知道这个编辑器很鸡肋,文本编辑很麻烦,查找呀,替换呀,定位呀很麻烦。我们可以借助第三方的编辑器,最简单的如记事本,我推荐新手用Notepad++编辑器,这个编辑器是有中文版的,下载安装时默认就是中文,可以很方便的下载去用。

    使用第三方编辑器,我们可以先把程序文件写好再保存或拷贝到工作目录下,比如我再添加两个程序文件test2.cpp(实现乘除算法)和test2.h(头文件)

     

    保存到工作目录

    打开BC软件

    默认打开是上次退出前的工程,(如果没打开,就到Project菜单中打开)但是这里我们并看不出来,这时我们到菜单Window->Project.显示区下方就会显示工程栏。(这个操作记住,我们会经常用到)

    此时工程中并没有test2.cpp文件,我们按照前面两种方法添加文件到工程的方法来添加就可以了。菜单Project->Add item,我们会发现BC自动列出了test2.cpp,我们把它添加进来就可以了。

    修改test.cpp

    编译运行出结果。

     

    前面所有操作过程中我们都是把源文件和头文件直接放在工作目录根目录下的,而在实际大型项目开发过程中,往往把源文件统一放在工作目录下的一个子文件夹中,把头文件统一放在工作目录下的另一个子文件夹中。比如这里我们可以把所有源文件放在source文件夹里,把头文件放置在include文件夹里,

    我们从头到尾再建一次工程

     

    1.Project->Open Project

     

     

    2.Project->Add item,我们要打开source文件夹将里面的源文件添加进来。

    这个时候我们编译工程,会发现以下错误

    上图提示找不到头文件test1.htest2.h,那是当然的,因为我们并没有告诉BC我们把头文件放在了include文件夹,bc会默认在工作目录test文件夹的根目录下找这两个头文件,当然是找不到的,那么我们如何告诉BC头文件在哪里呢?有两种方法

    第一种:修改源代码中预定义头文件的路径,以test.cpp为例,前面两个头文件是系统自带的不用修改,后面两个要想程序找到相应的头文件,改成下面的形式,这是什么意思呢,. /表示上一层目录的意思,“./include/test1.h”表示本源代码所在目录的上一层目录下的include文件夹里的test1.h,这样程序就能找到它了,同理修改test1.htest2.h.

     

    第二种:程序能找到stdio.h等自带的头文件,是因为BC将这些头文件所在的文件夹添加到了包含目录下,同样我们也可以将我们自己的头文件所在目录添加进来。

    Options->Directories,在第一项后面用分号隔开添加头文件所在文件夹的目录。保存后再次编译运行程序就能成功。

     

    程序中凡是涉及到路径的一定要弄清楚,因为程序是死的,你不告诉它,它就找不到,这种情况在读取文件时最常遇到,比如读取一个图片,要将图片相对于源文件的路径指定给相应代码。暂时写到这里





    附件列表

  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/star91/p/5642868.html
Copyright © 2020-2023  润新知