問題タブ [cl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ を構築する Bazel の「あいまいなシンボル」
バックグラウンド
私は、clを使用してBazelでC ++をコンパイルするWindowsビルドを使用しています。
ファイルのサブセット:
schriter.h持ってい#include "unicode/utypes.h"ます。
uri_utils.hそしてb/cpp/src/strings/stringpiece.h両方がありclass StringPieceます。third_party/icu/source/common/unicode/stringpiece.hもっているclass U_COMMON_API StringPiece : public UMemory
a.cc以下を参照しStringPiece、以下を含みます。
a/BUILD:
b/BUILD:
third_party/icu/BUILD:
問題
そのままでは、ビルドは次のようにthird_party/icu:common失敗します。
third_party/icu/source/stubdata/stubdata.c(20): fatal error C1083: Cannot open include file: 'unicode/utypes.h': No such file or directory
に追加copts = ["/Ithird_party/icu/source/common",],するthird_party/icu/BUILDと、icu:commonビルドされますが、ターゲットaは次のエラーで失敗します。
third_party/icu/source/common/unicode/schriter.h(21): fatal error C1083: Cannot open include file: 'unicode/utypes.h': No such file or directory
代わりに を追加するincludes = ["source/common",],と、icu:commonビルドされますが、ターゲットは次のようにa失敗します。
ソースは cmake を使用して正常にコンパイルされるため、ソースを変更する必要はありません。このビルドを正しく行うために BUILD ファイルを変更するにはどうすればよいですか? icuのすべてがのヘッダーにアクセスできるようにし、 に依存するターゲットにunicodeは公開しないようにするにはどうすればよいですか?unicode/stringpiece.hicu