tc++3.0编译5510m时make问题 点击:1648 | 回复:8



西玛仪表 028-66505957 13808018567

    
  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2006-05-08 13:36:00
楼主
   大虾们好~
  我用组态王做上位机,5510M的控制器,slot0:adam5017,
                                     slot1: adam5060
程序如下:
 #include "mrtu.h"
 #include "5510drv.h"
 #include "conio.h"
 void main()
 { 
 int result;
 char c;
 int ch;
 int *out;
 
 /*------first scan IO module-------*/
 Init501718(0);
 SetCom1ToPC(9600L,8,0,1);
 SetCom2ToPC(9600L,8,0,1);
 ch=0;
 while(1)
 {
 /*----------Check whether the AI data  of the slot 0 is ready------*/
 if(AiUpdate(0,&ch)==0)
{
 /*--AI is ready,then return current channel index--*/
 /*--Get one channel data-- */
 /*--The data format of AI value is a signed engineering unit.--*/
 Get501718(0,ch,&result);
 SetWordIn(ch+1,result);
}
 GetBitOut(1,out);
 Set5060(out,2,0,ABit);
 ProReqCom1();
 ProReqCom2();
  }
  }
这部分是用组态王6.51盘里头的demo程序改的~~~,compile成功,但是没有想到出现link的错误:

 Linking QXC01.EXE:                                                           │
│?Linker Error: Undefined symbol _main in module c0.ASM   


编译器是broland的 tc++ 3.0,
adam的工作模式选择是small,cpu类型也是80168,link settings里面为standard exe(组态王里头写的是standard dos exe,但是tc++3.0里面只有stadnard exe)

请问是怎么回事???或者如何解决?? 
 



GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-10 09:58:00
1楼
* The "generate underbars" option is disabled.
* The Pascal calling Convention rather than the C calling        convention is selected.

http://bdn.borland.com/article/0,1410,17488,0.html
"Undefined Symbol '_main' in Module C0.ASM"
======================================================================
Every C program must contain a function called main(). This is the first function executed in your program. The function name must be all in lower case. If your program does not have one, create one. If you are using multiple source files, the file that contains the function main() must be one of the files listed in the Project.
Note that an underscore character '_' is prepended to all
external Turbo C++ symbols.
In addition to an absent, misspelled or mis-cased symbol main, there are two additional common causes: 
 * The "generate underbars" option is disabled.
 * The Pascal calling Convention rather than the C calling              
   convention is selected.

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-10 09:59:00
2楼
* The "generate underbars" option is disabled.
* The Pascal calling Convention rather than the C calling convention is selected.

http://bdn.borland.com/article/0,1410,17488,0.html
"Undefined Symbol '_main' in Module C0.ASM"
======================================================================
Every C program must contain a function called main(). This is the first function executed in your program. The function name must be all in lower case. If your program does not have one, create one. If you are using multiple source files, the file that contains the function main() must be one of the files listed in the Project.
Note that an underscore character '_' is prepended to all external Turbo C++ symbols.
In addition to an absent, misspelled or mis-cased symbol main, there are two additional common causes: 
 * The "generate underbars" option is disabled.
 * The Pascal calling Convention rather than the C calling convention is selected.

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2006-05-10 12:03:00
3楼
多谢GaryLin兄~~

我昨天再次打开程序时,这个问题又莫名的消失了(因为到现场去呢,所以可以肯定程序文件是绝对没有改过的~),

而且又出现了新问题:同样是make时,出现的link error:
bad object file record in module....\tc31\lib\ad5510as.lib

这个又是什么问题呢??

我直接用亚控提供的一个与5510通讯解决方案里头的例程:test.c(组态王6.51盘中附带的),同样是出现这个目标文件错误~~

GaryLin

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 1186回
  • 年度积分:0
  • 历史总积分:1263
  • 注册:2003年4月15日
发表于:2006-05-10 13:18:00
4楼
MS 與 Borland 所用的 lib 格式是不同的, 請先確認您用的是正確的版本.

西玛仪表 028-66505957 13808018567

  • 精华:0帖
  • 求助:2帖
  • 帖子:54帖 | 1652回
  • 年度积分:0
  • 历史总积分:2355
  • 注册:2006年4月18日
发表于:2006-05-10 14:08:00
5楼
组态王有个对于5510通讯的解决方案,上面说明是用bc也就是broland的c,

另外,我用记事本打开AD5510As.lib文件,发现里面说明是Borland C++3.1

所以我又用BC3.1试过了··

当然结果还是......唉~~~郁闷~刚才给成都亚控打电话过去,有个技术员给我说他要试验以下,估计明天给我回复~~

太阳光尘

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 13回
  • 年度积分:0
  • 历史总积分:16
  • 注册:2006年4月12日
发表于:2006-05-12 09:21:00
6楼
【1】在我看来是库文件路径问题。
【2】你的com1口可以省去,程序中根本没有用到,白白浪费资源

jimmy8008

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2012年7月16日
发表于:2013-02-10 16:44:15
7楼

西玛仪表 新年好,抱歉过年的时候打扰你,你遇到的问题;我也遇上了 同样两个错误 分别出现如下:

Undefined Symbol ‘_main‘ in Module C0.ASM

 

bad object file record in module....\tc31\lib\ad5510as.lib


请教当初是如何处理的谢谢

江湖走走--原创军团

  • [版主]
  • 精华:30帖
  • 求助:7帖
  • 帖子:836帖 | 7833回
  • 年度积分:193
  • 历史总积分:46108
  • 注册:2001年2月15日
发表于:2013-02-10 18:02:03
8楼
这个没玩过,不过这样的讨论很值得大家学习参考!

热门招聘
相关主题

官方公众号

智造工程师