打印

PIC 编译不过,用了那么久竟然还有这种问题??

[复制链接]
4058|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zm110911|  楼主 | 2012-3-6 13:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我从同事那里拿来一个工程,竟然编译错误,出下:E:\work\washing\media\16F1939\16F1939_V1.c; 322. fixup overflow referencing psect cstackBANK2 (0x141) into 1 byte at 0xD60/0x2 -> 0x6B0 (BYD_V1.0.obj 284/0x1E)

但是我的盘根本无这个路径,我用的这个工程16F1939_V1.c已经做成库存在这个工程里面,但在我另一个同事那里又可以打得开,不知道什么问题?????
沙发
Ryanhsiung| | 2012-3-6 15:23 | 只看该作者
1、.lkr文件你同事有改过了,但没有包含在工程内,所以你电脑编译出错了
2、还有目录设定出错了

使用特权

评论回复
板凳
airwill| | 2012-3-6 15:34 | 只看该作者
换了电脑, 换了路径, 过程里没有更改

使用特权

评论回复
地板
zm110911|  楼主 | 2012-3-6 16:34 | 只看该作者
另一个同事的这个工程是我发给他的,所以这个问题才让我感到难以理解,电脑,软件都是一样的。

TO 2楼:
1、.lkr文件你同事有改过了,但没有包含在工程内,所以你电脑编译出错了
但在我另一个同事那里可以打得开,而且工程是我发给他的
2、还有目录设定出错了
至于目录我是一个对上去的,觉得不应该会存在这个问题、、、、


求解、、、

使用特权

评论回复
5
Ryanhsiung| | 2012-3-6 18:21 | 只看该作者
TO 2楼:
1、.lkr文件你同事有改过了,但没有包含在工程内,所以你电脑编译出错了
但在我另一个同事那里可以打得开,而且工程是我发给他的

.lkr要是没有包含在工程内(你同事修改的是在MCC18目录里的原始.lkr),而你拷过来,你有没有将MCC18中的.LKR拷过来啊??
2、不在我手上,目录我就不好说了


再加一个 编译器版本可以不一至

使用特权

评论回复
6
yewuyi| | 2012-3-7 09:08 | 只看该作者
把原来的项目文件删除掉,只保留与编译相关的必须文件(一般是C文件、H文件、连接文件、库文件),然后重新建立项目后编译试一下。

这个问题其实很简单, fixup overflow referencing psect cstackBANK2 (0x141) into 1 byte at 0xD60/0x2 -> 0x6B0 (BYD_V1.0.obj 284/0x1E)

一般都是使用了自己的连接文件,你在MPLAB中手工指定了自己的连接文件,结果新编译时又没有找到这个连接文件或者是找到的连接文件与源代码中的引用不符。

使用特权

评论回复
7
zm110911|  楼主 | 2012-3-7 10:47 | 只看该作者
to 6楼
     只保留与编译相关的必须文件(一般是C文件、H文件、连接文件、库文件),然后重新建立项目后编译试一下。
这种方法我也试过,但结果都是一样,还是不行、、、、、使用PIC、、一个词“纠结”、、、

使用特权

评论回复
8
ayb_ice| | 2012-3-7 11:48 | 只看该作者
MPLAB不够聪明
如果是KEIL肯定不会

使用特权

评论回复
9
yewuyi| | 2012-3-7 11:50 | 只看该作者
to 6楼
     只保留与编译相关的必须文件(一般是C文件、H文件、连接文件、库文件),然后重新建立项目后编译试一下。
这种方法我也试过,但结果都是一样,还是不行、、、、、使用PIC、、一个词“纠结”、、、 ...
zm110911 发表于 2012-3-7 10:47


如果这个也和PIC要挂上的话,估计你没有不纠结的事情了。

这个就是编译器、连接器、库等的问题,属于C语言范畴的东西。

问题很简单,就是编译/连接的时候找不到定义。

使用特权

评论回复
10
nongfuxu| | 2012-3-7 12:40 | 只看该作者
把原来的项目文件删除掉,只保留与编译相关的必须文件

其它的编译器也会出现这样的情况。复制过来使用时先得把原先的编译文件删除,否则会出现意想不到的问题。

使用特权

评论回复
11
hbl123456| | 2012-3-7 14:10 | 只看该作者
细心,再细心,一定是有一个被你忽视的环节出错了,一定是还有没听说的知识隐含在里面。

使用特权

评论回复
12
zm110911|  楼主 | 2012-3-7 14:22 | 只看该作者
目前我的解决办法:到主管那边要了一个里面是用到那个库的DEMO程序,再开几个*.C 和*.H文件,再把同事发过来的那个程序对应复制过去、、、、、

已得到解决,但不知道问题所在,所以心里还是那郁闷了得,下次如果找不到可用的DEMO那还不直接挂了、、、

使用特权

评论回复
13
yewuyi| | 2012-3-7 14:23 | 只看该作者
目前我的解决办法:到主管那边要了一个里面是用到那个库的DEMO程序,再开几个*.C 和*.H文件,再把同事发过来的那个程序对应复制过去、、、、、

已得到解决,但不知道问题所在,所以心里还是那郁闷了得,下次如果找 ...
zm110911 发表于 2012-3-7 14:22


问题很明显,具体请教你的主管。

使用特权

评论回复
14
Ryanhsiung| | 2012-3-7 17:38 | 只看该作者
目前我的解决办法:到主管那边要了一个里面是用到那个库的DEMO程序,再开几个*.C 和*.H文件,再把同事发过来的那个程序对应复制过去、、、、、

已得到解决,但不知道问题所在,所以心里还是那郁闷了得,下次如果找 ...
zm110911 发表于 2012-3-7 14:22

LZ有没有检查.lkr文件了!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

25

帖子

1

粉丝