Langkau ke kandungan utama

Kompil dan Install QJson dengan Windows10, Cmake, MinGW untuk qt4.8

Assalamualaikum

Untuk melancarkan penggunaan webservices yang banyak menggunakan json dalam kod program qt4.8, adalah perlu untuk kita kompil dan rujuk fail librari ini secara manual.

Untuk lebih mudah, gunakan qt versi 5 keatas kerana sokongan untuk json ini telah sedia install.


Keperluan

1. Muat turun dan install

2. Muat turun / git clone kod sumber qjson daripada github
https://github.com/flavio/qjson
- unzipkan fail ke dalam satu folder


3. Setkan Environment Path dalam windows anda

    1. Select Start, select Control Panel. double click System, and select the Advanced tab.
    2. Click Environment Variables. ...
    3. In the Edit System Variable (or New System Variable) window, specify the value of the PATH environment variable. ...

masukkan dalam path:

  1. C:\Qt\4.8.6\bin
  2. C:\MinGW\bin
  3. C:\Program Files\CMake\bin


4. Buka Command Prompt sebagai administrator 
-> klik kanan pada butang windows start, pilih command prompt (Admin)

5. Selusur ke folder qjson yang telah di unzip
  • guna arahan cd untuk buka folder
6. bina satu folder baru bernama build
7. buka folder build 
  • cd build
8. Masukkan arahan berikut: 

cmake -G "MinGW Makefiles" ..
C:\Users\user2\qjson-master\build>cmake -G "MinGW Makefiles" ..
-- The C compiler identification is GNU 5.3.0
-- The CXX compiler identification is GNU 5.3.0
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe
-- Check for working CXX compiler: C:/MinGW/bin/g++.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Deprecation Warning at CMakeLists.txt:11 (cmake_policy):
  The OLD behavior for policy CMP0020 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


Qt5 not found, searching for Qt4
-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - not found
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - found
-- Looking for Q_WS_QWS
-- Looking for Q_WS_QWS - not found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found
-- Found Qt4: C:/Qt/4.8.6/bin/qmake.exe (found suitable version "4.8.6", minimum required is "4.5")
Enable QStringBuilder
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/user2/qjson-master/build

9. Setelah selesai, masukkan arahan berikut pula

make
C:\Users\user2\qjson-master\build>make
[  8%] Generating moc_serializerrunnable.cxx
[ 16%] Generating moc_parserrunnable.cxx
Scanning dependencies of target qjson
[ 25%] Building CXX object src/CMakeFiles/qjson.dir/parser.cpp.obj
[ 33%] Building CXX object src/CMakeFiles/qjson.dir/qobjecthelper.cpp.obj
[ 41%] Building CXX object src/CMakeFiles/qjson.dir/json_scanner.cpp.obj
[ 50%] Building CXX object src/CMakeFiles/qjson.dir/json_parser.cc.obj
[ 58%] Building CXX object src/CMakeFiles/qjson.dir/parserrunnable.cpp.obj
[ 66%] Building CXX object src/CMakeFiles/qjson.dir/serializer.cpp.obj
[ 75%] Building CXX object src/CMakeFiles/qjson.dir/serializerrunnable.cpp.obj
[ 83%] Building CXX object src/CMakeFiles/qjson.dir/moc_parserrunnable.cxx.obj
[ 91%] Building CXX object src/CMakeFiles/qjson.dir/moc_serializerrunnable.cxx.obj
[100%] Linking CXX shared library libqjson.dll
[100%] Built target qjson

10. Akhir sekali, masukkan arahan ini

make install
C:\Users\user2\qjson-master\build>make install
[100%] Built target qjson
Install the project...
-- Install configuration: ""
-- Installing: C:/Program Files (x86)/qjson/lib/cmake/qjson/QJSONTargets.cmake
-- Installing: C:/Program Files (x86)/qjson/lib/cmake/qjson/QJSONTargets-noconfig.cmake
-- Installing: C:/Program Files (x86)/qjson/lib/cmake/qjson/QJSONConfig.cmake
-- Installing: C:/Program Files (x86)/qjson/lib/cmake/qjson/QJSONConfigVersion.cmake
-- Installing: C:/Program Files (x86)/qjson/lib/libqjson.dll.a
-- Installing: C:/Program Files (x86)/qjson/bin/libqjson.dll
-- Installing: C:/Program Files (x86)/qjson/include/qjson/parser.h
-- Installing: C:/Program Files (x86)/qjson/include/qjson/parserrunnable.h
-- Installing: C:/Program Files (x86)/qjson/include/qjson/qobjecthelper.h
-- Installing: C:/Program Files (x86)/qjson/include/qjson/serializer.h
-- Installing: C:/Program Files (x86)/qjson/include/qjson/serializerrunnable.h
-- Installing: C:/Program Files (x86)/qjson/include/qjson/qjson_export.h


kompil selesai.. selamat mencoba..


Ulasan

Catatan popular daripada blog ini

Apa Maksud RON dalam pengkelasan Petrol?

RON dan Petrol Oleh yusdirman, Oktober 2014 RON adalah singkatan daripada Research Octane Number Ianya kaedah penarafan bahan api. Lebih tinggi nilai RON, lebih mahal harga PETROL. Adakah minyak RON 97 lebih berkuasa berbanding RON 95? RON merujuk kepada tahap bahan api menahan rintangan "ketukan" semasa proses pembakaran oleh palam pencucuh dalam enjin. Ianya merujuk kepada tahap ketahanan bahan api untuk tidak terbakar sebelum dinyalakan oleh palam pencucuh dalam enjin. "ketukan" dalam konteks RON ini adalah apabila campuran bahan api dan udara dalam enjin terbakar lebih awal sebelum api dari palam pencucuh menbakarnya. Pembakaran awal ini mungkin disebabkan enjin terlalu panas. Haba dari silinder enjin itu sendiri mungkin telah menyalakan bahan api sebelum palam pencucuh menyala. Ini boleh menurunkan prestasi dan mungkin boleh memudaratkan enjin! Jadi, RON bukannya bermaksud LEBIH KUASA! Ianya bermaksud bahan api itu dapat menahan tekanan dari

Load Balancing dengan Nginx dan Puma

Load Balancing dengan Nginx dan Puma Tutorial ini adalah sangat ringkas hanya untuk menunjukkan kebolehan nginx sebagai load balancer yang dapat menjadi 'orang tengah' antara banyak server di belakangnya Keperluan 1. Paling kurang 2 server aplikasi 2. Satu server diinstall nginx Contoh Persekitaran yang sekarang 1. server1: os: debian application: ruby on rails web server : puma dns : myaplication1.yusdirman.com 2. server2: myaplication2.yusdirman.com os:debian application: ruby on rails web server : puma dns : myaplication1.yusdirman.com 3. nginx diinstall di server1 /ets/nginx/nginx.conf setup (default): worker_processes  2; worker_processes  auto; worker_rlimit_nofile 65536; error_log  logs/error.log  notice; error_log  logs/error.log  info; events {   worker_connections  65536; } http {   include       mime.types;   default_type  application/octet-stream;   sendfile        on;   tcp_nopush on;   tcp_nodelay on;   keepalive_tim

Server Redundancy - Pertindanan Komputer Pelayan

alkisahnya tercari-cari untuk buat server redundancy ( pertindihan komputer pelayan ) atas sebab perlunya server yang sentiasa on-line tanpa ada downtime yang lama. Dan, cabarannya adalah memang kami tak pernah jalani apa-apa latihan, pengalaman dan apa jua pengetahuan berkenaan teknologi ini. Yang pastinya, perlu banyak mengoogle. Setakat ini, ada banyak kaedah untuk memastikan aplikasi masih terus boleh berfungsi walaupun server mati/rosak. 1. guna 2 server yang sama. Bila satu mati, satu lagi yang masih hidup dapat terus melayan pengguna. 2. guna 2 talian rangkaian yang berbeza. Bila satu talian rosak/putus, masih ada satu lagi talian rangkaian yang berfungsi. 3. storan di server guna raid ( redundant array of independent disk ) atau dalam bahasa melayu : barisan disk berlainan yang bertindan. Raid dapat menjadikan sebilangan hd menjadi 1 dengan semua data pada 1 hd adalah sama dengan data pada hd 2. (mirroring) 4. satu IP maya untuk sebilangan server. 2 server yang mena