2017-09-07 2 views
2

には見られません。ここに私のワークスペースファイルは、次のとおりです。グロブは、私は現在、C++プロジェクトをビルドするBazelを使用していますbazel

cc_library(
name = "Boost", 
srcs = glob(["/usr/local/lib/libboost*.so"]), 
hdrs = glob(["/home/duttama/boost_1_55_0/**/*.h"]), 
) 


cc_library(
name = "OpenCV", 
srcs = glob(["/usr/lib/x86_64-linux-gnu/libopencv*.so"]), 
hdrs = glob(["/home/duttama/opencv-2.4.13/**/*.h"]), 
) 


cc_library(
name = "AffectivaSources", 
srcs = glob(["/root/affdex-sdk/lib/*.so"]), 
hdrs = glob(["/root/affdex-sdk/include/*.h"]), 
) 

そして、ここでは私のビルドファイルです:

cc_binary(
name = "video-demo", 
srcs = ["video-demo.cpp"], 
deps = ["//lib:OpenCV", 
      "//lib:AffectivaSources", 
      "//lib:Boost", 
], 
)  

私はそれを実行すると、私はこのエラーを取得:それはなぜ

ERROR: /root/sdk-samples/WORKSPACE:17:12: Traceback (most recent call last): 
File "/root/sdk-samples/WORKSPACE", line 15 
    cc_library(name = "AffectivaSources", srcs = ..."]), ..."])) 
File "/root/sdk-samples/WORKSPACE", line 17, in cc_library 
    glob 
name 'glob' is not defined 

私の質問はglob関数を見つけることができません。私は、ワークスペースファイルまたはどのようにこのglob関数をインポートするには他に何を指定することを確認していません。

答えて

1

ワークスペースファイルは、cc_binary/cc_rulesためのものではありません。外部依存関係などのプロジェクト全体のルールを定義するためのもので、glob関数はWORKSPACEファイルでは使用できません。 WORKSPACEルールのhttps://docs.bazel.build/versions/master/be/workspace.htmlを参照してください。

あなたのプロジェクトにC++の依存関係をインポートしているようです:new_local_repositoryのルールhereをチェックしてください。これにより、ローカルシステムのフォルダを指すことができます。これは、各外部依存関係のため、それぞれのcc_libraryルールを含むファイルをビルド書くためにあなたが必要となります。たとえば、ワークスペース・ファイル内の

new_local_repository(
    name = "affectivalibrary", 
    path = "/root/affdex-sdk/", 
    build_file = "BUILD.affectiva", 
) 

と、プロジェクト内の、作成BUILD.affectiva:あなたはこれをやったら

cc_library(
    name = "aff", 
    srcs = glob(["lib/*.so"]), 
    hdrs = glob(["include/*.h"]), 
) 

、あなたはBUILDにそれらに依存することができます構文のファイル:

cc_binary(
    name = "video-demo", 
    srcs = ["video-demo.cpp"], 
    deps = ["@affectivalibrary//:aff", ...] 
) 

また、あなたは絶対的なf srcs/hdrs属性でILEパス - グロブパターンは絶対にできません。 https://github.com/bazelbuild/bazel/tree/master/examples/cpp

https://docs.bazel.build/versions/master/build-ref.html#lexiあなたはまだ混乱している場合

、Bazelリポジトリの例のC++プロジェクトがあります:ここBUILDファイルターゲットラベルの構文を参照してください

関連する問題