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