C++ 为什么CLion可以正确构建和链接Qt,但不能运行我的可执行文件? 总结
我试图在Windows上用Clion编译和运行/调试Qt代码。CMake和构建过程都不返回错误 出现以下情况:C++ 为什么CLion可以正确构建和链接Qt,但不能运行我的可执行文件? 总结,c++,qt,cmake,clion,dynamic-linking,C++,Qt,Cmake,Clion,Dynamic Linking,我试图在Windows上用Clion编译和运行/调试Qt代码。CMake和构建过程都不返回错误 出现以下情况: 当我尝试运行时,我得到退出代码为-1073741511(0xC0000139)的进程已完成 当我尝试调试时,我得到了退出代码1的过程 当我试图通过Windows CMD直接运行可执行文件时,可执行文件会按预期运行 当我将所有dll文件从。/Qt/5.12.6/mingw73_64/bin复制到项目的cmake build debug文件夹时,可执行文件会按预期在CLion中运行和
进程已完成
过程
。/Qt/5.12.6/mingw73_64/bin
复制到项目的cmake build debug
文件夹时,可执行文件会按预期在CLion中运行和调试
- 视窗10
- Qt 5.12.6(mingw73_64构建)
- 克莱恩2019.2.5
- MinGW(x86_64-8.1.0-win32-seh-rt_v6_rev0)
- CMake(捆绑式,3.15.3)
C:\Qt\5.12.6\mingw73\u 64\bin
)添加到我的系统环境变量中,这样我就可以直接从CMD运行exe文件了。注意,我将Qt-bin文件夹路径添加到path
变量中
鉴于一些人在网上提到,由于CLion作为某个系统用户运行,用户变量可能存在问题,我还将上述路径添加为用户环境变量
,再次添加路径
。但是,唉
此外,我还尝试通过Settings->Appearance&Behavior->Path Variables
将其作为环境变量直接添加到CLion中。在这里,我尝试将Qt-bin文件夹分别映射到Path
、Path
、和Qt\u-DIR
。尽管我尝试了多次重新启动,但仍然没有成功。在更改路径等过程中,多次尝试Windows重新启动和实际关闭
主要问题:
如何解决我描述的问题,以便在CLion中运行和调试我的Qt构建,而不必将Qt相关DLL复制到可执行文件所在的cmake build debug
CMakeLists.txt
在Settings->Build,Execution,Deployment->CMake
中,我将CMake选项设置为-DCMAKE\u PREFIX\u PATH=C:\\Qt\\5.12.6\\mingw73\u 64\\lib\\CMake
cmake_minimum_required(VERSION 3.8)
project(HelloWorld)
set(CMAKE_CXX_STANDARD 14)
# Include a library search using find_package()
# via REQUIRED, specify that libraries are required
find_package(Qt5Core REQUIRED)
find_package(Qt5Gui REQUIRED)
find_package(Qt5Widgets REQUIRED)
set(SOURCE_FILES main.cpp)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
# specify which libraries to connect
target_link_libraries(${PROJECT_NAME} Qt5::Core)
target_link_libraries(${PROJECT_NAME} Qt5::Gui)
target_link_libraries(${PROJECT_NAME} Qt5::Widgets)
main.cpp
#包括
#包括
#包括
#包括
int main(int argc,char*argv[]){
QApplication应用程序(argc、argv);
QWidget小部件;
widget.resize(640480);
widget.setWindowTitle(“你好,世界!!!”;
QGridLayout*gridLayout=新的QGridLayout(&widget);
QLabel*label=新的QLabel(“你好,世界!!!”;
标签->设置对齐(Qt::AlignVCenter | Qt::AlignHCenter);
gridLayout->addWidget(标签);
widget.show();
返回app.exec();
}
与此同时,我已经解决了这个问题
解决办法如下:
转到编辑配置
将Qt bin文件夹添加到工作目录
点击OK
和/或APPLY
现在我可以直接在CLion中运行和构建我的Qt应用程序了
我会给你买你最喜欢的饮料,我花了24小时才找到这个解决方案。现在我知道了这个设置,这非常有意义。显然,Qt Creator设置了路径,您的评论是我在CLion中的项目中缺少的+1谢谢