vs2017下新建一个Qt Empty Application遇到的无法识别的外部符号的问题
今天2020-10-14突然想试下qt empty application项目是怎么用的。
一、环境:vs2017 , qt:C:/Qt/Qt5.9.0/5.9/msvc2017_64/bin/qmake。
二、新建工程:Qt Empty Application
三、编译链接经历:
1.新建工程后,工程里啥都没有,没有cpp,没有ui。
2.新建了一个main.cpp文件如下内容:
代码清单一:
#include <QtWidgets/QApplication>
#include <QDebug>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QSlider>
#include <QtWidgets/QSpinBox>
#include <QtWidgets/QWidget>
#include <QtWidgets/QAbstractSlider>
#include <QtWidgets/qabstractslider.h>
int
main(int argc,char* argv[])
{
QApplication app(argc, argv);
QWidget *window = new QWidget;
window->setWindowTitle("Enter your age");
QSpinBox *spinBox = new QSpinBox;
QSlider *slider = new QSlider(Qt::Horizontal);
spinBox->setRange(0, 130);
slider->setRange(0, 130);
QObject::connect(spinBox, SIGNAL(valueChanged(int)), slider, SLOT(setValue(int)));
QObject::connect(slider, SIGNAL(valueChanged(int)), spinBox, SLOT(setValue(int)));
spinBox->setValue(35);
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(spinBox);
layout->addWidget(slider);
window->setLayout(layout);
window->show();
return app.exec();
}
3.启动编译,ctrl + F7,成功。
4.启动链接,ctrl + F5,失败,报一大堆“找不到外部符号”,共131个报错.
5.设置了工程settings,添加include包含,库文件路径。 在vc++目录项、
c++项都做了添加include、lib路径包含工作,无用。链接通不过。
6、试图通过#pragma comment(lib,"****.lib")包含库文件,无用。链接通不过。
7、网上没有关于qt空项目的特点,可能很少人用吧。
四、尝试了很多方法,比如观察qt creator 空项目做法,系统环境设置,path设置。关键是为啥不能识别到库文件?
五、最后解决了,方法很简单:在project settings -- 链接器 --输入 --附加依赖项,把所有的qt库.lib都列出来。
注意几点:1.还是有报错,说某某lib文件有问题,解决办法:在附加依赖项删除之。
2.一个一个的写.lib文件名到“附加依赖项”不现实,利用 dir /b *.lib > temp.txt命令行搞定.
六、瞎折腾的,也许有更好的办法,有机会再摸索.