我在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我正在项目标签中复制Qt Creator列出的qmake
构建命令,并成功构建了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
或g++
提取的Qt版本不是Qt Creator正在使用的5.7版本,因为{{ 1}}是added in Qt 5.6。
full generated Makefile包含
99个引用AA_EnableHighDpiScaling
和179个引用/usr/include/qt5
。 Qt 5.7安装在/usr/lib/x86_64-linux-gnu/qt5
中。显然,我需要修改qmake命令中的某些内容,以使其指向其他位置。
我怎样才能让它发挥作用?我是否需要以某种方式删除Ubuntu安装的旧版qt库?将一些配置指向我现在安装的Qt 5.7版本(由Qt安装程序)在我的主目录中?用符号链接替换现有的/旧的Qt目录?
答案 0 :(得分:1)
或者您可以使用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
)