CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

一个有关源程序在编译与链接时的问题

楼主LoopyPuzzle(浪子无名)2003-08-03 17:51:13 在 C/C++ / C语言 提问

我在写完程序运行时,发现有以下问题:  
  一:这个是在运行时给出的一个对话框中的话,需要选择是否继续,如果继续则程序运行,并且能够得到正确结果。源程序如下  
  Error   reading   debug   infomation:build   with   invalid   linker.Run   anyway?  
  #include<iostream.h>  
  int   global;  
  void   f()  
  {global=5;}  
  void   g()  
  {cout<<global<<endl;}  
  int   main()  
  {  
    f();  
    g();  
    return   0;  
  }  
   
  二:在编译与链接运行下面这个程序时就没有上面那个幸运了,编译器直接给出错误信息,程序无法运行。如下:  
  Linker   Warning:No   module   definition   file   specified:using   defaults  
  Linker   Error:Undefined   symbol   OwlMain(int,char   far*far*)   in   library   file   d:\bc4\lib\owlwi.lib   in   module   winmain  
  #include<iostream.h>  
  class   point  
  {  
    public:  
      point(int   xx=0,int   yy=0){x=xx;y=yy;countp++;}  
      point(point   &p);  
      int   getx(){return   x;}  
      int   gety(){return   y;}  
      void   getc(){cout<<"Object   id="<<countp<<endl;}  
    private:  
      int   x,y;  
      static   int   countp;  
  };  
  point::point(point   &p)  
  {  
    x=p.x;  
    y=p.y;  
    countp++;  
  }  
  int   point::countp=0;  
  void   main()  
  {  
    point   a(4,5);  
    cout<<"Point   A,"<<a.getx()<<","<<a.gety();  
    a.getc();  
    point   b(a);  
    cout<<"Point   B,"<<b.getx()<<","<<b.gety();  
    b.getc();  
  }  
  后来我修改了一下directory:将lib库的目录由d:\bc4\lib改为d:\bc4\lib;d:\bc4\owl\lib,结果出现下面的错误信息,程序依然无法运行。  
  Linker   Fatal:unable   to   open   file   'cOwl.obj'  
  我现在有两点疑问:这是怎么回事?还有,为什么我将directory修改后会有变化,而d:\bc4\owl\lib是实际中不存在的啊。  
  恳请各位给予解答。 问题点数:40、回复次数:11Top

1 楼LoopyPuzzle(浪子无名)回复于 2003-08-03 17:59:52 得分 0

补充一点:我用的编译器是Borland   C++   4.0,安装路径为:d:\bc4Top

2 楼LoopyPuzzle(浪子无名)回复于 2003-08-03 18:48:21 得分 0

哎,为什么没有人回答啊?自己up先。Top

3 楼LoopyPuzzle(浪子无名)回复于 2003-08-03 21:55:09 得分 0

不会吧?还没有关注?我再up!Top

4 楼aflyinghorse()回复于 2003-08-03 23:08:04 得分 5

第一个问题我在dev-cpp下运行正常,没问题  
  第二个问题我在dev-cpp下运行也正常  
  可能是你的设置有问题吧Top

5 楼huigll(会)回复于 2003-08-03 23:14:04 得分 2

bc4?  
  没有用过,不知道怎么办,帮你up  
   
  期待。  
   
  或许是include   或者lib   的路径不对?Top

6 楼gernal_dn()回复于 2003-08-04 01:01:44 得分 25

BC?多年未用,不知说得对不对。  
  BC4好象是运行在DOS以及Windows3.1下的,可以编16位的DOS程序和Win31程序,它编Win31时使用一个很少见的OWL库,编DOS时是不能用这个库的。  
  你第二个程序明明是DOS的,却提示OWL,是不是你建立工程时是建立Win31的工程,导致编译环境不正常?  
  Top

7 楼gernal_dn()回复于 2003-08-04 01:04:53 得分 0

从Linker   Fatal:unable   to   open   file   'cOwl.obj'这个信息看,你确实是建立Win工程!  
  Top

8 楼LoopyPuzzle(浪子无名)回复于 2003-08-04 23:17:37 得分 0

我用的是BC4   for   win的,可能用的是默认工程,也许就是win31的工程。  
  但是在改过之后又出现一个问题,它提示:Linker   Error:Undefined   symbol   _main   in   module   c0.ASM。这又是什么意思啊?  
   
  (我原来使用的是Turbo   C++   3.1,从装系统后就出了问题,又重装不上,只好用这个。)Top

9 楼antijpn(antijpn)回复于 2003-08-05 00:22:24 得分 0

第二个程序无论我用Borland的编译器还是MS的编译器都无法通过Top

10 楼antijpn(antijpn)回复于 2003-08-05 12:39:15 得分 8

我检查过了,getc在iostream里面是一个宏定义,在编译检查的时候就无法通过了Top

11 楼LoopyPuzzle(浪子无名)回复于 2003-08-05 23:51:12 得分 0

我认为这个与getc没有关系啊。因为我还曾经有一个程序也是出现上述错误。但是那个只是一个有关函数模板的程序,没有getc。我想gernal_dn()说的可能有道理,所以我试了一下,结果出现了我上贴所说的新问题。但是我的程序应该是没有问题的,因为那是我原来在TurboC++下写的,而且也运行成功了。这只是TC3.1坏了,我改用BC4后出现的问题。所以我想问清楚到底是怎么回事。Top

相关问题

  • 求编译器源程序
  • linux下怎么编译java源程序?
  • mfc的源程序编译出错
  • 如何编译DDK的源程序?
  • linux&xenix下源程序编译问题求解,急!!!
  • 请问如何在C++BUIDER4.0上编译C++的源程序?
  • 我的 WATCOM C++ IDE 无法编译源程序,怎么回事??
  • PB反编译成源程序的工具?
  • 写的好汇编源程序怎么编译。
  • 怎样用jb7将源程序编译成exe文件?

关键词

  • 源程序
  • 问题
  • 程序
  • point
  • yy
  • xx
  • global
  • 继续
  • 运行时
  • cout

得分解答快速导航

  • 帖主:LoopyPuzzle
  • aflyinghorse
  • huigll
  • gernal_dn
  • antijpn

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo