2017-07-09 74 views
0

我使用protobuf來生成。 proto文件到.cc/.h文件。所以我有我的SConscript如下:scons:如何指定依賴到外部構建目標?

env.protoc('my.proto') 
env.Program(target='pb_my', CCFLAGS="-I.", 
     source=['pb_my.cpp', 'my.pb.cc'],  LIBS='protobuf') 

我發現,「環境」。 SConscript中的命令不會按順序執行(這就是爲什麼可以使用scons -j20並行構建目標)。但是有時候問題是,因爲從「my.proto」生成「my.pb.cc」後應該生成「pb_my」的目標,scons會報告錯誤,第二行是先執行。

那麼如何指定第二行的目標應該只在第一行完成後執行呢?

非常感謝。

回答

1

您無法直接在scons中指定順序。

正確的方法是確保指定相關性。

請包含您的protobuf構建器的代碼?

如果您的protobuf構建器輸出的文件在生成之前正在編譯,那麼您的protobuf構建器沒有指定它們。

此外,請將scons --tree = prune的輸出添加到您的問題中。

相關問題