1

こんにちは、私は一日中壁に頭をぶつけてきました。

そのため、プログラムを大学のスーパーコンピューターに移動したいのですが、ブーストがありません(そして、コードでブーストprogram_optionsを使用しました)。私のPCには、-lboost_program_optionsがあり、これは正常に機能しますが、明らかに機能しなくなります。

したがって、スーパーコンピューターでコンパイルできるように、必要なものをコードと一緒にパッケージ化する必要があります(Intel icpcを使用)

私の最初のハードルは、ブーストヘッダーを含めたいコードを含むmakefileの行をコンパイルすることでしたが、コードフォルダーで次のコマンドを実行しました。

bcp --scan --boost=/usr/include/ main.cpp destination_folder/

そして、結果のファイルを私のインクルードディレクトリに置きます。それを解決しました。

残念ながら、ブーストプログラムオプションはヘッダーのみのパッケージではないので、何か他のものが必要です。図書館か何かを手に入れる必要があります。コンパイラがmakefileの最後のタスクに到達するとエラーが発生するため(すべてのオブジェクトファイルを実行)

私の旅行で私はこの質問を見つけました:

extractin / building boost program_options

答えが示唆することを試しましたが、コマンドに「build」を入れても余分なファイルは生成されません...

今は完全に立ち往生しています、このライブラリのものを取得する方法がわかりません。頭が回転しているbjamについてたくさんのことを読んだのですが、頭の中ですべてを処理するための理解のレベルがありません。

OS:Linux両方のシステム

4

3 に答える 3

2

1つのオプションは、そのマシンでブーストを構築することです。あなたの家にそれをインストールしてください。CXXFLAGSとLDDFLAGSを変更して、適切なヘッダーとライブラリディレクトリをポイントし、そこでコードをビルドします。もう1つのオプションは、PCで両方をクロスコンパイルすることです(このようなクロスツールチェーンがある場合)。コードを静的にリンクして、ブーストし、最終的なバイナリをスーパーコンピューターに取り込みます。

于 2011-09-26T20:47:35.977 に答える
1

どちらのシステムもLinuxであるため、バイナリを使用するだけです。両方のシステムが同じCPUで実行されている場合は、プログラムを静的にコンパイルするだけです。そうでない場合は、スーパーコンピューターが実行されているアーキテクチャーのdebianパッケージをダウンロードし、そこからヘッダーとバイナリーをリッピングします。

私はWindowsへのクロスコンパイルのためにbjamからboostをビルドしました。プロジェクトでautotoolsを使用する理由があったとしたら、それはboostとbjamの混乱です。可能であればそれを避け、できない場合はdebianパッケージソースを適応させてみてください。

于 2011-09-26T20:45:05.387 に答える
1

ビルドする代わりにBoost.ProgramOptions、プロジェクト内にすべての.cppファイルを含めてコンパイルすることができます。

于 2011-09-26T20:50:48.723 に答える