古いバージョンの C++ ブースト ライブラリを含むマシンでデモを行う必要があります。具体的には、クラスのメンバー関数をboost::thread
使用している が必要です。残念ながら、古いバージョン (1.33.1) にはこのメソッドが含まれていません。lock
mutex
ターゲット マシンにルート アクセス権がなく、以前のバージョンのブーストをアンインストールできません。私の解決策は、ターゲット マシンで更新されたライブラリをプリコンパイルし、新しいバージョンのライブラリにリンクするだけでした。
ライブラリのコンパイル部分はうまくいき、すべてが滞りなく進みましたが、コンパイルしようとすると、古いバージョンのブーストを使用していることを示していました。少し調べてみたところ (ここでは g++ noob)、-L
および-I
フラグを使用して、最初にヘッダーとライブラリを探す場所を手動で指定できることがわかりました。これらを相対パスで使用しようとしました(デモが実行されるディレクトリはわかりませんが、新しいブーストライブラリへの相対パスはわかっているため)、これを思いつきました:
-bash-3.2$ g++ -I./include -L./lib main.cpp -lthread
/usr/bin/ld: cannot find -lthread
collect2: ld returned 1 exit status
インクルード/ライブラリディレクトリのより深いパスを指定するなど、あらゆる種類のことを試してきましたが、運がなく、行き止まりにいるように感じます. 何か案は?参考までに、boost 1.49.0 の使用を検討しています。