gpt4 book ai didi

qt - 从命令行构建 QML 应用程序(没有 Qt Creator)

转载 作者:行者123 更新时间:2023-12-04 19:15:33 25 4
gpt4 key购买 nike

我正在 Ubuntu 14.04 上使用 Qt 5.7 编写 QML 应用程序。我更喜欢使用 Qt Creator 以外的编辑器,因此启动 Qt Creator 并切换到它只是在每次我想运行时按 Ctrl-R 会有点麻烦。我想从命令行编译和启动我的应用程序。

关注 this answer然后 this answer我能够安装 qmake并将其设为默认值:

sudo apt-get install qt5-qmake
sudo apt-get install qt5-default

关注 this answer我正在复制 qmake Qt Creator 在 Project 选项卡中列出的 build 命令并成功构建了 make 文件:

qmake qt-client.pro -r -spec linux-g++

但是,当我运行 make (在我已经在使用的 Qt-Creator 代码中)我得到:

phrogz@Slub:~/Code/rb3jay/qt-client$ make
g++ -c -pipe -O2 -std=c++0x -Wall -W -D_REENTRANT -fPIE -DQT_NO_DEBUG -DQT_QUICK_LIB -DQT_QML_LIB -DQT_NETWORK_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/lib/x86_64-linux-gnu/qt5/mkspecs/linux-g++ -I. -I/usr/include/qt5 -I/usr/include/qt5/QtQuick -I/usr/include/qt5/QtQml -I/usr/include/qt5/QtNetwork -I/usr/include/qt5/QtGui -I/usr/include/qt5/QtCore -I. -o main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:6:36: error: ‘AA_EnableHighDpiScaling’ is not a member of ‘Qt’
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
^
make: *** [main.o] Error 1

我猜也许 qmake 使用了 Qt 的版本。或 g++不是 Qt Creator 使用的 5.7 版本,因为 AA_EnableHighDpiScalingadded in Qt 5.6 .

full generated Makefile包括
99 次引用 /usr/include/qt5和 179 次对 /usr/lib/x86_64-linux-gnu/qt5 的引用. Qt 5.7 安装在 /home/phrogz/Qt5.7.0 .显然,我需要修改 qmake 命令中的某些内容以使其指向其他地方。

我怎样才能让它工作?我是否需要以某种方式删除 Ubuntu 安装的旧版本的 qt 库?将一些配置指向现在(由 Qt 安装程序)安装在我的主目录中的 Qt 5.7 版本?用符号链接(symbolic link)替换现有/旧 Qt 目录?

最佳答案

或者您可以使用 CMake:

cmake_minimum_required (VERSION 2.8.11)

project(myproject)

find_package(Qt5 5.7.0 REQUIRED COMPONENTS
Core
Quick
Widgets
)
set(CMAKE_AUTOMOC ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

add_executable(${PROJECT_NAME}
main.cpp
)

target_link_libraries(${PROJECT_NAME}
Qt5::Core
Qt5::Quick
Qt5::Widgets
)

关于qt - 从命令行构建 QML 应用程序(没有 Qt Creator),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39192766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com