QT使用中遇到LINK2005报错解决

    技术2022-07-11  108

    本菜鸟在使用qt的过程中遇到了main.cpp和mainwindow.cpp需要调用同一参数的情况。起初在mainwindow.h中加入定义,在两个源文件中分别包含此头文件,点击运行,然后就出现了LINK2005的报错。 百度后发现是重定义的问题。 解决方法: 在mainwindow.cpp中参数定义,如 类型 名;(可直接赋值) 在mainwindow.h中参数声明,如extern 类型 名;(不要在这赋值) 在main.cpp中加入头文件,便可使调用此参数。 使用static也可解决报错问题,但是源函数间调用时参数地址不同,在有些时候会有影响。比如指针。 static 和 extern 的区别请看: https://blog.csdn.net/qq_35524916/article/details/68953942

    据说在头文件中加入 #ifndef MAINWINDOW_H #define MAINWINDOW_H #endif 或 #pragma once也可以解决此报错问题。我试了下没能成功。

    Processed: 0.009, SQL: 9