我写了一个小Qt程序(在Windows上),我遇到了以下情况:
使用CMake,我生成了我的make文件来构建程序,如下所示
cmake_minimum_required(VERSION 3.5)
project(helloworld)
SET(C++_STD_FLAG "c++11" CACHE STRING "e.g. c++98,c++11,c++14,...")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=${C++_STD_FLAG}")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
find_package(Qt5Widgets)
add_executable(main main.cxx)
target_link_libraries(main Qt5::Widgets Qt5::Gui Qt5::Core)
如果我想启动" main.exe",则会显示一条消息,指出找不到某些DLL。 DLL是Qt5Widget.dll,Qt5Core.dll,Qt5Gui.dll。如果我将它们复制到与" main.exe"相同的文件夹中。一切正常。
如何启动" main.exe"没有将DLL复制到目录?
编辑: DLL所在的路径已添加到Windows中的PATH变量中。但是,它不起作用。
编辑:我还附加了main.cpp的代码
#include <QtWidgets>
#include <QApplication>
int main(int argc,char **argv){
QApplication app(argc,argv);
QWidget window;
window.setWindowTitle("Hallo Qt");
QPushButton *button = new QPushButton("Ende");
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(button);
window.setLayout(layout);
window.show();
return app.exec();
}
编辑:我发现了这个问题,但这引出了一个问题: 我还安装了PyQt,它在PATH变量中具有更高的优先级。所以我让其他Qt安装更高,并且工作正常。
但是,如何判断可执行文件是否使用特定的DLL?因为,如果我使用Qt Creater编译程序,即使PyQt在PATH变量中具有更高的优先级,它也能正常工作。
提前致谢