【问题背景】
任务:
C++实现文件拷贝,要求有界面输入源文件地址和目标文件地址,点击一个按钮将源文件夹下的全部都拷贝的目标文件夹下,另外最后的.exe要可以在cmd中输入两个参数实现同样的文件拷贝
实现:
界面用Qt事件,写一个copyFile函数有两个参数src和dst,点击按钮事件会调用copyFile函数并将界面获取的路径传入完成拷贝,main函数也接收参数,所以如果接收到说明用户用cmd方式传参,那么直接调用写好的copyFile函数完成,如果没有说明用户点击了.exe则用弹出窗口输入的方式。考虑到copyFile函数复用性以及文件操作的扩展性所以建了一个类叫fileOperator,想着以后可以写关于文件的其他操作,现在就简单的一个public的copyFile函数。OK,后来问题就出现了无法解析的外部符号
【问题原因及解决】
然后搜发现了参考中的那篇,我想复现之前的错误但是不知道为什么复现不了,所以把那篇文章中有用的摘一下
出现这个错误的错因大多数在于:
[0]出现无法解析可能是因为lib文件不正确,比如64位的编译配置,结果使用的是32位的lib包.
[1]只写了类声明,但还没有写实现类,造成调用时无法解析 [2]声明和定义没有统一,造成链接不一致,无法解析
[3]没有在项目属性页的链接器的命令行选项加入相应的类包。 [4]没有在c++包含目录和库目录加入相应的类包路径
[5]在测试工程中被测文件目录可能需要包含被测类的cpp定义文件
[6]ICE接口测试时,无法解析可能因为被测文件没有包含进相关的cpp文件,另外,在TestSuite_ProjectRun.h文件中需要包含IProj