サードパーティのベンダーが私に事前構築されたセキュリティライブラリをリリースしており、そのコードやメークファイルにアクセスできません。このライブラリはopenssl & protobufの特定のバージョンに対してコンパイルされています。問題は、私が働いているアプリで、クロムは、これらの2つのライブラリの修正バージョンも使用しています(技術的には、boringslはopensslではありませんが、シンボルを共有しています)。彼らはクロム源とコンパイルされ、静的にリンクされています。セキュリティライブラリをchromiumに追加すると、異なるヘッダーに対してコンパイルされたライブラリとオブジェクトの2つの競合するバージョンが作成されます。これはもちろん、実行時のクラッシュや予期しない結果につながります。すべてが正しくリンクされていて、シンボルが衝突しないように私ができることはありますか?ライブラリの2つの競合するバージョンをリンクする
0
A
答えて
0
すべてが正しくリンクされ、シンボルが衝突しないようにするためにできることはありますか?
あなたの唯一の本当の選択肢は次のとおりです。サードパーティのライブラリ
- 使用
dlopen(..., RTLD_LOCAL);
はあなたにクロムツリーに対して構築されたバージョンを提供するベンダーに確認して下さい。 - このサードパーティ製のライブラリの使用を中止してください。
- OpenSSLとprotobufを第三者のライブラリに静的にリンクし、そのシンボルを隠すソリューションは、別の可能性のようですが、ライセンスの影響があります。 protobufとopensslの両方がバイナリの再配布を許可しているようですので、これは実際には動作しますが、IANALです。
関連する問題
- 1. jQueryの2つのライブラリ間の競合
- 2. 2つのバージョンのSQL Serverを使用した照合競合
- 3. 同じC++プロジェクトの2つの異なるバージョンのprotobufライブラリをリンクする
- 4. プログラムは2つの競合する共有ライブラリを使用します
- 5. Maven + SLF4J:2つの異なるSLF4Jバージョンを必要とする2つの異なる依存関係を使用する場合のバージョンの競合
- 6. androidの読書連絡先の2つのバージョン間の競合
- 7. 関数名は2つの異なるライブラリのPHPで競合します
- 8. getpaidバージョンの競合
- 9. mavenの競合ライブラリ
- 10. ライブラリ競合エラー
- 11. 1つのWebリクエストで2つのAutofacコンテナが競合する
- 12. NHibernateのバージョンの競合
- 13. 異なるlibstdC++バージョンを使用する2つの静的ライブラリ
- 14. サードパーティのライブラリYii2の競合
- 15. Castle.WindsorとMoQのバージョンの競合を解決するにはCastle.Coreアセンブリのバージョンの競合
- 16. 同じライブラリの2つのバージョンを使用する
- 17. 2つのgitリポジトリ間の競合を検出する方法。
- 18. 2つの遅延リストタイプの競合をマージする
- 19. Googleサービスのバージョン競合
- 20. NPMは、バージョンの競合
- 21. Visual Studioコピープロジェクトのバージョン競合
- 22. Owinパッケージのバージョン競合
- 23. Androidの競合バージョンgradle
- 24. ワードプレスjqueryバージョンの競合
- 25. Apacheバージョンの競合(cont)
- 26. Pythonバージョンの競合とpip3
- 27. ruby gemの競合するバージョンを管理する
- 28. Xcodeの2つのバージョンを競合することなくどうすればできますか?
- 29. ページ内の2つのドロップダウン(競合)
- 30. 2つのjavascriptファイルの競合
私はセキュリティベンダーに、opensslとprotobufに静的にリンクされたライブラリを提供し、APIのシンボルだけがコンシューマに公開されるようにビルドすることを検討することも考えています。そうでなければ、それはお尻の完全な痛みになります。 – Petesh