Baru saja saya perhatikan bahwa MinGW Toolchain yang disertakan dengan instalasi Qt default, setidaknya Qt 5.14, dilengkapi dengan direktori lib dengan file libQt5*.a. Apakah file-file itu perpustakaan statis?

Saya pikir begitu karena:

  1. Mereka memiliki ukuran yang mirip dengan yang saya dapatkan ketika saya mengkompilasi Qt secara statis untuk dirilis.
  2. $file ./libQt5Core.a menghasilkan ./libQt5Core.a: current ar archive, yang sama dengan keluarannya untuk yang dikompilasi secara statis.

Jika memang itu adalah pustaka statis, bagaimana saya bisa memberi tahu QMake (misalnya mengedit file .pro) untuk menautkan ke yang bukan menautkan ke yang dibagikan?

Windows screenshot of Qt static libs

0
lateo96 11 April 2020, 22:49

1 menjawab

Jawaban Terbaik

Apakah file-file itu perpustakaan statis?

Tidak. Mereka tidak statis. Penginstal online default Qt hanya menyediakan pustaka bersama. File *.a itu disebut perpustakaan impor.

Import library adalah library .a atau .lib, tetapi hanya berisi sedikit informasi yang diperlukan untuk memberi tahu linker/OS bagaimana program Anda berinteraksi dengan dll.

Jika Anda memerlukan Qt static windows build karena beberapa alasan, Anda memiliki beberapa opsi:

  • KERAS Bangun seluruh Qt (atau modul yang diperlukan) oleh sendiri.

  • MUDAH Gunakan vcpkg: vcpkg install qt5:x64-windows-static

Dengan vcpkg Anda dapat membuat triplet khusus jika Anda memerlukan MinGW karena alasan tertentu . Tapi saya sarankan Anda tetap menggunakan MSVC.

1
VladBolotov 12 April 2020, 15:55