记录C++ Builder 6.0开发过程中的一个linker error

今天在开发的时候,本来好好的工程,突然报出这样的错误:

[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吧?

记录C++ Builder 6.0开发过程中的一个linker error

上一篇:.NET服务端开发—多线程使用小结(多线程使用常识)


下一篇:Android SDK下载与安装