Boostソフトウェアライセンスで利用可能。
POCOに関する追加情報:
pocoproject.org/features.html
en.wikipedia.org/wiki/POCO
よく整理されたクラス構造のドキュメントは、html-online、html-offlineで入手できます。
主な機能のドキュメントと使用例-pdf : pocoproject.org/documentation/index.html
POCOには最も豊富な機能があります-多く-すべて、C ++プログラマーの幸せな生活に必要なものすべて! このツールキットは完璧に機能し、よく考え抜かれたAPIを備えています。
POCOは、次のような多数のオペレーティングシステムを対象としています。 デスクトップWindows、Windows CE、Linux。
私自身の経験から、POCOはこれらのOSで問題なく動作することに注意してください。
私の3つの記事「Cross-compile POCO from Windows」で、これらのOS向けのWindowsからのクロスプラットフォームアセンブリの方法論を伝えようとしています。
記事 "Windows for WinCEからのクロスコンパイルPOCO" habrahabr.ru/post/223157
Linux for WindowsからPOCOをクロスコンパイルします
メソッドが開発されました:
-クロスプラットフォームのtoochain Spireターミナル(ARM9)
-Windows 7 64ホストマシン
-POCO Basic Edition 1.4.6p4
動的接続(結果-
*.so
ファイル)または静的接続(結果-
*.a
ファイル)のPOCOを収集しましょう
POCOの準備
POCOでディレクトリを準備します。
-Basic Editionの最新の安定バージョンのPOCOアーカイブをpocoproject.org/download/index.htmlからダウンロードします。 「Linux、OS Xなどのソース」ボタン。 執筆時点では、アーカイブはpoco-1.4.6p4.tar.gzです。
-別のディレクトリに解凍します。 たとえば、WinRARを使用し、Cディレクトリで/poco/poco-1.4.6p4を作成します。
Unixプラットフォーム用のアセンブリ記述ファイルを準備します。
このファイルは、環境(makechainを構築するためのツールチェーンユーティリティと他のパラメータの名前)を決定するためにconfigureコマンドによって使用されます。
-C:/poco/poco-1.4.6p4/build/config/でファイル「ARM-Linux」を見つけ、たとえばプラットフォームの名前など、別の名前でコピーします。 ARM-Linux-Spireという名前を付けました。
注意! この名前は、「POCOアセンブリ」ステップで使用されます。
アセンブリ記述ファイルとビルドシステムに関する情報:
http://pocoproject.org/docs/99150-GMakeBuildNotes.html
:
http://pocoproject.org/docs/99150-GMakeBuildNotes.html
ARM-Linux-***ファイルをテキストエディターで編集します(メモ帳++を使用しました)。
1)行
STLPORT_INCLUDE= , STLPORT_LIB= , OPENSSL_INCLUDE= , CFLAGS=
を見つけてコメントアウトします。 次のようになります。
#STLPORT_INCLUDE = /usr/local/include/stlport
#STLPORT_LIB = /usr/local/lib
#OPENSSL_INCLUDE = /usr/local/arm/2.95.3/include
#OPENSSL_LIB = /usr/local/arm/2.95.3/lib
#CFLAGS = -Isrc
2)
SYSFLAGS =
から
SYSFLAGS =
remove
-I$(STLPORT_INCLUDE) -I$(OPENSSL_INCLUDE)
次のようになります。
#SYSFLAGS = -I$(STLPORT_INCLUDE) -I$(OPENSSL_INCLUDE) -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_REENTRANT -D_THREAD_SAFE -DPOCO_NO_FPENVIRONMENT
SYSFLAGS = -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_REENTRANT -D_THREAD_SAFE -DPOCO_NO_FPENVIRONMENT
3)
SYSLIBS =
から
SYSLIBS =
remove
-L$(STLPORT_LIB) -L$(OPENSSL_LIB) -lstlport_arm-linux-gcc
次のようになります。
#SYSLIBS = -L$(STLPORT_LIB) -L$(OPENSSL_LIB) -lstlport_arm-linux-gcc -lpthread -ldl -lrt
SYSLIBS = -lpthread -ldl -lrt
4)
TOOL = arm-linux
行を見つけて、
arm-linux
を機器のツールチェーンユーティリティのプレフィックスに変更します。
私はこのように変更しました:
TOOL = arm-unknown-linux-gnu
通常、Linuxデバイス用のクロスプラットフォーム開発ツールチェーンにはハードウェアが付属しています。
これは、GCCスイート( en.wikipedia.org/wiki/GNU_Compiler_Collection )のユーティリティを含むアーカイブです。
プレフィックスの名前を確認するには、/ binディレクトリのツールチェーンに移動し、
*-gcc.exe
または
*-g++.exe
ファイルに注意してください
*-g++.exe
たとえば、私のツールチェーンにはファイルが含まれています:
arm-unknown-linux-gnu-gcc.exe
arm-unknown-linux-gnu-g++.exe
、したがって、私のツールチェーンのプレフィックスは
arm-unknown-linux-gnu
です。
5)行
POCO_TARGET_OSARCH = ARM
を見つけて、任意の名前を割り当てます。これは、アセンブリ中に、アセンブリの結果でディレクトリを作成するために使用されます。 プラットフォームの意味のある名前を反映するために、
POCO_TARGET_OSARCH = ARM_Spire
という名前を付け
POCO_TARGET_OSARCH = ARM_Spire
。 したがって、ビルド後、POCOライブラリは
C:\poco\poco-1.4.6p4\lib\Linux\ARM_Spire
ます。
6)アセンブリ結果の構成に注意してください。
動的接続用にPOCOを構築する場合:
LINKMODE
は
SHARED
必要があります
、ただし静的接続の場合:
LINKMODE
は
LINKMODE
必要があります
ツールの準備
ツールをインストールします。
-MinGW msys。 msysシェルを使用します。 私のMinGWにはデバイス用のSDKが付属しており、公式Webサイトwww.mingw.orgから入手できます。
-コピー&ペーストをサポートするWindows用コンソール。 著者はConEmu x64 www.conemu.ruを使用しました
コピーと貼り付けをサポートするコンソールを開きます。これ以降の手順はすべてこのコンソールから行われます。
toochain / binディレクトリの可用性を確認し、toochainからgccユーティリティの名前を入力します。 私はこれを持っています:
arm-unknown-linux-gnu-gcc -v
-このユーティリティが見つからない場合は、パスを登録します。 私の道はこれです:
set PATH=C:\Spire\SDT\TOOLCHAIN\20140226\bin;%PATH%
-再びtoochainの可用性を確認してください
makeユーティリティの可用性を確認します。
make -v
-このユーティリティが見つからない場合は、パスを登録します。 私の道はこれです:
set PATH=C:\Spire\SDT\MinGW\bin;%PATH%
-可用性をもう一度確認します
msysコマンドシェルに入り、次を実行します。
sh
-このユーティリティが見つからない場合は、パスを登録します。 私の道はこれです:
set PATH=C:\Spire\SDT\MinGW\msys\1.0\bin;%PATH%
それ以降のすべての手順は、コンソールから実行され、コピーと貼り付け+ msysシェルがサポートされます。
現在のPOCOでディレクトリを設定します。
cd C:/poco/poco-1.4.6p4
POCOアセンブリ
組み立ての前に(注文用)、コンフィギュレーターの可用性を確認できます。
./configure --help
POCO設定を実行します。
./configure --config=ARM-Linux-Spire
または、テストとサンプルなしでPOCOを構築するには:
./configure --config=ARM-Linux-Spire --no-tests --no-samples
構成が成功すると、次のようなものが表示されます。
Configured for ARM-Linux-Spire
-POCOのビルド:
make
PC(Intel i5 3.300Gz 8Gb)でのテストと例によるPOCOアセンブリ時間は12分かかりました。
収集されたPOCOライブラリは、構成設定ファイルの
POCO_TARGET_OSARCH
変数で定義したディレクトリの
\lib\Linux
にあります。
コンパイルされたPOCOライブラリへの私のパスは次のようになりました:
C:\poco\poco-1.4.6p4\lib\Linux\ARM_Spire
考えられる問題
POCOに直接関係しない問題がありました。
-静的POCOを使用するプロジェクトでは、
AtomicCounter
クラスの依存関係を許可しませんでした
__sync_add_and_fetch, __sync_fetch_and_add, __sync_sub_and_fetch, __sync_fetch_and_sub
解決策:
SYSFLAGS = ... -DPOCO_NO_GCC_ATOMICS
に追加して、
SYSFLAGS = ... -DPOCO_NO_GCC_ATOMICS
の異なる実装を使用します。
-静的POCOを使用したプロジェクトは正常にビルドされますが、デバイスで実行可能プログラムが開始されると、コンソールに次が発行されます。
/lib/libgcc_s.so.1: version 'GCC_4.3.0' not found (required by )
これは、デバイス上の
libgcc
とホストマシン上のツールチェーンのバージョンが異なるためです。 解決策:
libgcc
ライブラリーを
libgcc
。
POCOのアセンブリに関連する問題の原因を見つける基本的な方法:POCOソースを実行可能ファイルに接続し、ファイルの一部として収集を試みます。
情報源
「POCO C ++ライブラリGNU Make Build System」 pocoproject.org/docs/99150-GMakeBuildNotes.html
***
既製のC ++ツールは、作業をより楽しく、より実り多いものにします。 親愛なる同僚の皆さん、幸運を祈ります!
ヴラディスラフ・ホクリャコフ。