次のコマンドを使用して、QNX OS(x86の)を標的窓に私が正常にクロスコンパイルすることができブースト:b2 toolset=qcc target-os=qnx threadapi=pthread
クロスコンパイルブースト1.60.0内部依存関係の問題
をしかし、何らかの理由で、それが得られるライブラリーのように思えますファイルは内部の依存関係に正しくリンクしません。例えば
でユニットテストフレームワークの結果についてobjdumpはやって:あなたは、タイマーやシステムライブラリ(もQNX、同様の両方にリンクするとんでもないパスがある見ることができるように
Dynamic Section:
NEEDED bin.v2\libs\timer\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED bin.v2\libs\system\build\qcc\release\target-os-qnx\threadapi-pthread\threading-multi\libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
をlinuxでは、 '\'をエスケープ文字として解釈するので、QNXマシンのフォルダ構造は使用できません)。私は手動でライブラリのバイナリファイルを編集し、パスを削除しました(これは非常に危険であることがわかります...):
Dynamic Section:
NEEDED libboost_timer-qcc-mt-1_60.so.1.60.0
NEEDED libboost_system-qcc-mt-1_60.so.1.60.0
NEEDED libm.so.2
NEEDED libc.so.3
Boostにライブラリ全体のパスを含めないよう強制することは可能ですか? QNX 6.6 qcc toolchainの問題ですか?
ビルドプロセスの 'install'(または' stage')ステップを使用していないようです。ビルドディレクトリの複雑な階層からコンパイルのすべての関連出力を収集し、すべてのバイナリを1つの場所に配置します。 –
@DanMašek私が理解する限り、デフォルトでは「段階」でなければなりません。出力ファイルはboost_root \ stage \ lib \ –
に構築されています。面白い。 –