今天在开发的时候,本来好好的工程,突然报出这样的错误:
[Linker Error] Unresolved external ‘__fastcall TMainForm::OnPort1Message(Messages::TMessage&)‘ referenced from D:\NEW\A\SHANXIJUNQUA_DEMO\MAIN.OBJ
因为之前开发相关的程序的时候一直用的是微软的那一套的工具,这个也是最近才入手,所以不是很熟悉。于是就求助网络,最后在[[Linker Error] Unresolved external怎么解决]1 中看到这样的回复:
就是说你声明了该成员函数,但是却没有相应的定义,也就是实现
但是,我的过程里面明显是有这个函数的实现啊,那个函数我刚才还在修改呢!到工程的编译的文件下看了下,确实是没有相关的文件的obj文件,于是我就想着我再打开这个文件看看,重新编译下,这样不是就解决了这个问题了吗?
于是我就用C++ builder 6.0的好用的快捷键"CTRL+F12”,将所有的代码是是实现的模块调出来,输出那个函数所在的文件的名称进行搜索,神奇的事情出现了:竟然搜不到这个文件,现在明白了,是真的找不到这个文件啊,不出现这个错误才怪呢!
接下来的解决方法就简单了:在磁盘里找到缺失的文件,选择打开方式为:C++ Builder。打开后在C++ Builder里面:工程–>添加到工程(A)…,再编译,就没有上述的错误了。
PS:虽然问题解决了,但是不知道为什么莫名其妙我就把这个文件排除在了工程之外,可能是我的某一个误操作,或者是C++ Builder的bug吧?