1

古いバージョンの rhel で、かなり古いバージョンの boost を使用して実行してい/usr/include/boostます。最新バージョンのブーストをインストールし、適切な-Iオプションを追加しg++て、ほとんどの場合ブースト ヘッダーの新しいディレクトリに移動するようにしました。問題は、多くのコード ベースが古いバージョンのブースト用に何年も前に書かれており、最新のブーストには存在しないヘッダーが含まれていることです。この場合、 はcpp喜んで からのヘッダーをインクルードし/usr/include/boostます。これを回避する最善の方法は何ですか? 変わらない方がいい#include <boost/file.hpp>絶滅したヘッダーが何であるかを知っているだけで、絶滅したヘッダーに依存するコードをクリーンアップする必要がなく、喜んでクリーンアップする必要がない限り、別の場所を明示的に指すこと。プロジェクトに取り組んでいる一部のプログラマーは習慣的に絶滅したヘッダーを含んでいる可能性があるため、これは進行中の問題である可能性があるため、一度確認するだけでは十分ではありません.

4

1 に答える 1

2

コードがインクルードを探す場所を変更しようとしたり、メイクファイルを変更して他のディレクトリをインクルードしたりする代わりに/usr/include/boost、新しいものを指すように内容を変更するのはどうですか?

これが私がやろうとしていることです:

  1. おそらく別の名前に変更/usr/include/boostします/usr/include/boost-old
  2. ポイントするシンボリックリンクを作成します/usr/include/boost->/usr/boost/include/boost-old
  3. アプリをコンパイルして、この構成をテストできるようになりました。古い Boost ライブラリが含まれている必要があります。
  4. 新しい Boost ライブラリを新しいディレクトリにインストールします。/usr/include/boost-new
  5. 新しいライブラリを指すように suymbolic リンクを変更します/usr/include/boost->/usr/include/boost-new
于 2012-10-19T19:47:39.007 に答える