異なるコンパイラでコンパイルされた同じC++/FortranライブラリをCMakeでシステムにインストールする必要があります。同じライブラリのさまざまなコンパイラ固有のバージョンをシステムにインストールする標準的な場所はありますか?たとえば、lib.so
とlib.a
がすでにシステムパッケージマネージャー/usr/
の下にインストールされていると仮定すると、追加のコンパイラ固有のバージョンを別のフォルダにインストールすることをお勧めします。usr/local
。それともあなたがアドバイスできるより良い方法がありますか?UNIXのようなシステムに複数のコンパイラ固有のライブラリをインストールする場所
答えて
コンパイラ/ライブラリ/バージョンの数によって異なります。あなたはそれらのいくつかを持っている場合、私は(ほぼ)場所の任意の選択が正しいと思うが、私は個人的に手動でインストールされたコードの/ opt/pathsを好む。しかし、あなたがそれらのいくつかの組み合わせを持つことを開始する場合、簡単に問題になる。また、「最適な」場所に関する質問は、あるライブラリの使用方法から別のライブラリへの切り替えに、おそらくLD_LIBRARY_PATHを手動で設定することを避けるための最良の方法に関する質問に関連していると思います。
にrootユーザーを使用しないでください:
は、私はあなたが多くのコンパイラ/バージョンと多くのライブラリ/アプリケーションをサポートし、また、多くのユーザーのためにそれらを提供するシステムのための私の経験に応じていくつかの個人的な提言を与えますコンパイルされたソフトウェアをインストールする:「インストーラアカウント」を使用して、必要なときに他のユーザーに必要なときに読み取りと実行の権限を与える。
コンパイルされたソフトウェアのパスを選択する。/optおよび2つのサブフォルダ/ opt/buildと/ opt/installを定義します。ソースとコンパイル先の最初のものとコンパイル先のものの2つ目を指定します。
カテゴリに基づいていくつかのサブフォルダを作成します。 /コンパイラ、/ライブラリ、/アプリケーション.../opt/buildと/ opt/installの両方から。
/コンパイラの下でコンパイラを準備します。 /compilers/gnu/6.3または/ compilers/intel/2017。可能であれば、それらをコンパイルします。 /opt/build/compilers/gnu/6.3から/opt/install/compilers/gnu/6.3に変更するか、/ installフォルダに入れてください。/opt/install/compilers/intel/2017
バージョン、コンパイラおよびコンパイラのバージョンを指定するサブフォルダを追加するライブラリ(またはアプリケーション)のツリーを準備します。あなたが持っている、/opt/build/libraries/boost/1.64.0/gnu/6.3からコンパイルして、この段階では
を/opt/install/libraries/boost/1.64.0/gnu/6.3するインストールよく整理されたもの。しかし:
あなたが使用したいライブラリを決定することは困難である、あなたがLD_LIBRARY_PATHを指定したり、手動で正しいものをリンクする必要があり、状況が悪化しているあなたがアプリケーション
にも対処するときでありますライブラリ間の依存関係を考慮しないでください:boost/1.64.0/gnu/6.3とリンクするときにg ++ 6.3を強制するにはどうすればいいですか?
これらの問題やその他多くの問題に対処するには、ツールを使用してください。 http://modules.sourceforge.net/を使用すると、あるライブラリから別のライブラリに簡単に切り替えることができ、依存関係を強制したり、ヘルプを表示したりすることができます。
- 1. firebaseデータベース固有のフィールド複数の場所を更新する
- 2. Linux上のintelコンパイラによる固有ライブラリのコンパイルエラー
- 3. コンパイラ固有のプロキシに依存するC++ 11のライブラリ機能
- 4. コンパイラ固有のポインタ?
- 5. システムの標準Cライブラリ関数の実装場所
- 6. 複数のバージョンのEclipseを同じ場所にインストールする
- 7. アドオン固有のディレクトリの.gitフォルダに最適な場所?
- 8. サイトマップに場所固有のURLを追加するには?
- 9. OSX/Unixプロセス固有のリンク
- 10. Azure関数のアプリケーションにアプリケーション固有の構成プロパティを格納する場所
- 11. Pythonを使用してUnixシステムの場所にデータをエクスポートする方法
- 12. コンパイラでC++クラスがオブジェクトの固有の所有権セマンティクスを強制
- 13. Spring MVCにリクエスト固有の値を格納する場所は?
- 14. モデル固有のビジネスロジックをReduxアプリケーションに配置する場所
- 15. デバイス固有のバグをSamsungに報告する場所
- 16. Macインストーラパッケージ - オプションで複数の場所にインストールする方法
- 17. Pythonデプロイのベストプラクティス - 複数のバージョン、標準インストール場所、パッケージツールなど
- 18. Zend Frameworkでカスタムシステム固有の例外を配置する場所
- 19. ユーザー固有のオンラインゲームデータを保存する場所
- 20. 固有ライブラリ(3.3.4)によるセグメント化エラー
- 21. 効率的な方法は、固有のライブラリでは固有
- 22. 特定の場所にANTLR4固有の文字
- 23. ライブラリ固有のオブジェクトをラップするのに最適なデザインパターン?
- 24. VBA - 任意のユーザーのワークシート固有の場所を保存
- 25. 複数のファイルを複数の場所にコピーする
- 26. C++固有ライブラリ:
- 27. C++固有ライブラリ
- 28. MongooseとNodeJS:システム固有の固有のユーザー名を作成する
- 29. アルゴリズムクエリ - 複数のドライバ、複数の場所
- 30. システム固有の$ urandomはシステムVerilogにあります