halo, disini gw akan mengajarin bagaimana membuat GUI hello world di linux make QT sebelumnya ini info sistem operasi aku
system : Linux Mint 20.2 x86_64
arsitektur : 64 bit
dan ini info gcc/g++ aku (bisa dicek dengan g++ -v
)
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04)
ok, jadi mungkin di distro lain engga kompatibel :) ya coba coba gpp. pertama tama. silahkan install Qt nya melalui APT
1sudo apt-get install qt5-default
lalu, akan seperti ini
silahkan kamu tulis Y jika diminta konfirmasi akan penginstalan
lalu silahkan tulis program berikut, dengan nama file main.cpp
1#include <QtCore>
2#include <iostream>
3
4int main() {
5
6 std::cout << "Qt sekarang versi: " << qVersion() << std::endl;
7}
lalu kompilasi menggunakan G++ (bukan GCC)
1g++ -o version main.cpp -I/usr/include/x86_64-linux-gnu/qt5/QtCore -I/usr/include/x86_64-linux-gnu/qt5 -L/usr/lib/qt5 -lQt5Core -fPIC
lalu eksekusi hasil exeutable dengan ./version
hasilnya : Qt sekarang versi: 5.12.8
ok, brati qt udah bisa dipasang, lalu sekarang kita membuat hello world nya, tulis program berikut ke main.cpp
1#include <QApplication>
2#include <QWidget>
3
4int main(int argc, char *argv[]) {
5
6 QApplication app(argc, argv);
7
8 QWidget window;
9
10 window.resize(400, 300);
11 window.setWindowTitle("Halo dunia :)");
12 window.show();
13
14 return app.exec();
15}
lalu kompilasi dulu dengan cara berikut, pertama kita gunakan qmake tool caranya
1qmake -project
lalu itu akan menghasilkan file .pro, klo disaya kayak gini file nya
1######################################################################
2# Automatically generated by qmake (3.1) Sat Sep 4 08:33:31 2021
3######################################################################
4
5TEMPLATE = app
6TARGET = guiku
7INCLUDEPATH += .
8
9# The following define makes your compiler warn you if you use any
10# feature of Qt which has been marked as deprecated (the exact warnings
11# depend on your compiler). Please consult the documentation of the
12# deprecated API in order to know how to port your code away from it.
13DEFINES += QT_DEPRECATED_WARNINGS
14
15# You can also make your code fail to compile if you use deprecated APIs.
16# In order to do so, uncomment the following line.
17# You can also select to disable deprecated APIs only up to a certain version of Qt.
18#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
19
20# Input
21SOURCES += main.cpp
lalu setelahnya tulis qmake
itu akan membuat makefile
lalu setelahnya cukup make
mungkin kamu akan dapat error kayak gini
1Error QApplication: no such file or directory
nah, untuk mengatasinya, silahkan tambahkan
1QT += widgets
di akhir file pro nya lalu kompilasi ulang.
yang terakhir make
lalu eksekusi hasil output exeutable file nya dengan ./{nama folderaktif} atau bisa dengan hasil output exeutable file yang dihasilkan,
inilah hasilnya