私はすべてのプラットフォーム(linux、mac、windows)で動作するライブラリを開発中です。このライブラリは、クロスプラットフォームのユーザインタフェースライブラリであるQtに基づいています。私はこのライブラリをMacで開発しています。現在開発しているスタティックライブラリ(.a)は、LinuxとMacで動作します。この.a library
はWindowsでも動作しますか(Visual Studioを使用してみましょう)、または別のライブラリタイプを作成する必要がありますか?もしそうなら、どうすれば私のMacからWindowsの静的ライブラリを作成できますか?あなたの情報については、QtCreator IDEを使って静的ライブラリを作成しています。簡単なガイドライン/コード例/有用なリンクが本当に役に立ちます。qmake(Qt creator IDE for Mac経由)を使ったクロスプラットフォームC++静的ライブラリの開発
1
A
答えて
3
まず、クロスプラットフォームソフトウェアを作成する場合は、ターゲットプラットフォームでテストする必要があります。あなたがテストするWindowsコンピュータを持っていない場合、あなたはWindows互換性の別れをキスすることができます。
第2に、Windowsにはスタティックライブラリがありますが、.a
の代わりに.lib
という拡張子が使用されます。 qmakeのような深刻なビルドシステムはこれを処理できるはずです。静的ライブラリを生成するように指示すると、Windowsでは.lib、他のプラットフォームでは.aを生成します。
もちろん、何かで動作するには、リンク先のプログラムと同じコンパイラでコンパイルする必要があります。
GCC(またはMinGW、GCCのWindowsポート)で.libファイルを生成すると、異なるABI、異なる標準ライブラリ実装、および異なるランタイムを使用するため、Visual Studioプロジェクトにリンクすることはできません(また、MSVC .libファイルの形式が文書化されておらず、コンパイラのバージョン間で変更されているため)。
しかし、qmakeはほとんどのコンパイラで動作するため、Visual Studioで.libファイルを生成する際に問題はありません。
関連する問題
- 1. C++クロスプラットフォーム静的ライブラリの構築
- 2. Qt Creator IDE AutoTestプラグイン
- 3. qmakeバージョン4.8.4でqt creator ideを入手するには?
- 4. Qt Creatorで静的ライブラリを使用する
- 5. Qt Creator IDEのビルドディレクトリ
- 6. Qt Creatorを使用したUnixシステムでのQtアプリケーションの開発
- 7. qmake/Qt Creatorを使用したデバッグ/リリースライブラリとのリンク
- 8. C++コアアプリケーション開発フレームワーク、オープンソース、クロスプラットフォーム
- 9. Visual StudioとQt Creatorの同時開発
- 10. クロスプラットフォームObjective-C/C++の開発
- 11. Qt Creator qmakeはHTMLプリプロセッサを組み込みます
- 12. のQt Creatorを
- 13. Qt Creatorプロジェクトで外部の.aライブラリをGUI経由で追加するには?
- 14. Qtラッパーfor Cライブラリ
- 15. クロスプラットフォームC/C++開発のためのリソース
- 16. Qt:ライブラリの静的リンク
- 17. C++の「静的プラグイン」システム(ビルドシステム経由)
- 18. QtインクルードとQMakeエラー
- 19. LNK2005 Visual StudioとQT Creatorで静的openCVライブラリをリンクする際のエラー
- 20. Qt Creator IDEのUIについて
- 21. Creatorで静的なQtビルドを使用するには?
- 22. Qt Creatorライブラリを「削除」した後にエラーが発生する
- 23. クロスプラットフォームC++ 11コードの開発
- 24. IntelliJ IDEA IDE for Android開発
- 25. qmakeを使用せずにQt Creatorで展開するファイルを追加する方法
- 26. 私はまた、Qtの(qt.4.3.3)の静的ライブラリを作っていますlibQtCore.a
- 27. クロスプラットフォームの開発
- 28. クロスプラットフォームiOS/Mac OS X Objective-C開発ですか?
- 29. 静的Qtからqmakeを実行するには
- 30. 学習とクロスプラットフォームの開発(C++)
(現代の)Macを使用している場合は、複数のパーティションにブートするか、仮想マシン上で別のOSを起動することができます。後者は、別の「システム」で開発している間に、ビルドと単体テストに便利です。 – justin
Qtは、特にプラグイン(スタイルに便利です...)のために、動的にリンクされたライブラリを好んでいると思います。 –