QT


qt error: LNK1181: cannot open input file ‘shell32.lib’

Suatu saat, saya mendapatkan qt error: LNK1181: cannot open input file ‘shell32.lib’ ketika compiling dengan QT 5.9 dan MSVC2015 32bit. Untuk mengatasi masalah tersebut, dapat menambahkan library Microsoft SDKs pada file project.

Buka file project (biasanya berekstensi .pro), kemudian tambahkan library berikut ini:

win32:CONFIG(release, debug|release): LIBS += -L$$quote(C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib/) -lshell32
else:win32:CONFIG(debug, debug|release): LIBS += -L$$quote(C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Lib/) -lshell32

INCLUDEPATH += $$quote(C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Include)
DEPENDPATH += $$quote(C:/Program Files (x86)/Microsoft SDKs/Windows/v7.1A/Include)

Compile Qt dengan Static Library

  1. Yang pertama yang harus dilakukan adalah download komponen-komponen yang diperlukan.

– Download source Qt 4.8 (Pada kasus ini digunakan Qt 4.8).
– Download Perl
– Download MinGW-gcc440
– Download QT Creator

  1. Ekstrak source QT 4.8.
  2. Edit <QTDIR>\mkspecs\win32-g++\qmake.conf, ganti baris berikut:
    QMAKE_LFLAGS = -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
    Menjadi:
    QMAKE_LFLAGS = -static -static-libgcc -enable-stdcall-fixup -Wl,-enable-auto-import -Wl,-enable-runtime-pseudo-reloc
  3. Install Perl
  4. Buat file qtenv.bat (Pada kasus ini semua komponen yang diperlukan diletakkan di D:QtSDK)

echo off
echo Setting up environment for Qt Static
set QTDIR=D:\QtSDK\Desktop\Qt\4.8.0-static
set PATH=%QTDIR%\bin;%PATH%
set PATH=D:\QtSDK\Desktop\Qt\mingw\bin;%PATH%
set PATH=D:\QtSDK\perl\bin;%PATH%
set PATH=D:\QtSDK\perl\site;%PATH%

  1. Konfigurasi:

– Buka file qtenv.bat yang telah dibuat menggunakan Command Prompt.
– Masuk ke directory QT.
– Ketikkan perintah berikut:
configure -static -release -no-exceptions
Jika ingin menggunakan SQL gunakna perintah berikut:
configure -static -release -no-exceptions -qt-sql-sqlite -plugin-sql-sqlite -qt-sql-odbc -plugin-sql-odbc

  1. Build

– Setelah proses configure berhasil, ketikkan perintah berikut:
mingw32-make sub-src

– Tunggu sampai dan tidak ada yang error. Tahapan ini akan memakan waktu yang lama, sehingga bersabar saja menunggunya.

  1. Install QT Creator
  2. Cara konfigurasi pada Qt Creator:

– Buka QT Creator, pilih tools -> Options.
– Pilih Build & Run
– Buka tab Qt Versions, kemudian add -> buka file qmake.exe (biasanya ada di <QTDIR>/bin/qmake.exe).

13013106.01

– Buka tab Tool Chains, Add -> pilih MinGW. Pada compiler path, browse ke directory mingw berada.

13013106.02

– Kemudian Ok.

  1. Cara penggunaan:

– Tambahkan kode berikut pada project file:
CONFIG += static

– Untuk penggunaan SQL, tambahkan kode berikut (Sebagai contoh menggunakan sqlodbc):
Pada project file:
CONFIG += static
LIBS += -LD:/QtSDK/Desktop/Qt/4.8.0-static/plugins/sqldrivers/ libqsqlodbc
include(D:/QtSDK//Desktop/Qt/4.8.0-static/src/sql/drivers/odbc/qsql_odbc.pri)

   Pada main.cpp:
#include <QtPlugin>
Q_IMPORT_PLUGIN(qsqlodbc)


About Qt

Qt adalah sebuah aplikasi cross-platform dan UI framework. Dalam hal ini  termasuk cross-platform class library, development tools, dan IDE. Qt disusun menggunakan bahasa C++ dan dapat digunakan di platform Unix, Windows, Mac OS X, maupun embedded.

architecture

Berikut adalah link download yang berhubungan dengan Qt:
Qt SDK
Windows
Linux/X11 32-bit
Linux/X11 64-bit
Mac OS X 10.6 or later 64-bit

Qt libraries
Qt libraries 4.8.2 for Windows (minGW 4.4)
Qt libraries 4.8.2 for Windows (VS 2008,)
Qt libraries 4.8.2 for Windows (VS 2010)
Qt libraries 4.8.2 for Linux/X11
Qt libraries 4.8.2 for Mac
Qt libraries 4.8.2 for embedded Linux
Qt libraries 4.8.2 for Windows CE

Qt Creator IDE
Qt Creator 2.5.2 for Windows
Qt Creator 2.5.2 for Linux/X11 32-bit
Qt Creator 2.5.2 for Linux/X11 64-bit
Qt Creator 2.5.2 for Mac (Intel 32/64bit)