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

LoopyPuzzle 2003-08-03 05:51:13
我在写完程序运行时,发现有以下问题:
一:这个是在运行时给出的一个对话框中的话,需要选择是否继续,如果继续则程序运行,并且能够得到正确结果。源程序如下
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是实际中不存在的啊。
恳请各位给予解答。
...全文
87 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
antijpn 2003-08-05
  • 打赏
  • 举报
回复
我检查过了,getc在iostream里面是一个宏定义,在编译检查的时候就无法通过了
antijpn 2003-08-05
  • 打赏
  • 举报
回复
第二个程序无论我用Borland的编译器还是MS的编译器都无法通过
LoopyPuzzle 2003-08-05
  • 打赏
  • 举报
回复
我认为这个与getc没有关系啊。因为我还曾经有一个程序也是出现上述错误。但是那个只是一个有关函数模板的程序,没有getc。我想gernal_dn()说的可能有道理,所以我试了一下,结果出现了我上贴所说的新问题。但是我的程序应该是没有问题的,因为那是我原来在TurboC++下写的,而且也运行成功了。这只是TC3.1坏了,我改用BC4后出现的问题。所以我想问清楚到底是怎么回事。
LoopyPuzzle 2003-08-04
  • 打赏
  • 举报
回复
我用的是BC4 for win的,可能用的是默认工程,也许就是win31的工程。
但是在改过之后又出现一个问题,它提示:Linker Error:Undefined symbol _main in module c0.ASM。这又是什么意思啊?

(我原来使用的是Turbo C++ 3.1,从装系统后就出了问题,又重装不上,只好用这个。)
gernal_dn 2003-08-04
  • 打赏
  • 举报
回复
从Linker Fatal:unable to open file 'cOwl.obj'这个信息看,你确实是建立Win工程!
gernal_dn 2003-08-04
  • 打赏
  • 举报
回复
BC?多年未用,不知说得对不对。
BC4好象是运行在DOS以及Windows3.1下的,可以编16位的DOS程序和Win31程序,它编Win31时使用一个很少见的OWL库,编DOS时是不能用这个库的。
你第二个程序明明是DOS的,却提示OWL,是不是你建立工程时是建立Win31的工程,导致编译环境不正常?
huigll 2003-08-03
  • 打赏
  • 举报
回复
bc4?
没有用过,不知道怎么办,帮你up

期待。

或许是include 或者lib 的路径不对?
aflyinghorse 2003-08-03
  • 打赏
  • 举报
回复
第一个问题我在dev-cpp下运行正常,没问题
第二个问题我在dev-cpp下运行也正常
可能是你的设置有问题吧
LoopyPuzzle 2003-08-03
  • 打赏
  • 举报
回复
不会吧?还没有关注?我再up!
LoopyPuzzle 2003-08-03
  • 打赏
  • 举报
回复
哎,为什么没有人回答啊?自己up先。
LoopyPuzzle 2003-08-03
  • 打赏
  • 举报
回复
补充一点:我用的编译器是Borland C++ 4.0,安装路径为:d:\bc4

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧