cxx_binary() 和 cxx_library() 之间的区别

Difference between cxx_binary() and cxx_library()

两者有什么区别?在文档中,他们似乎有相同的论点?他们做同样的事情吗?除了官方文档,我没能找到太多关于 Buck 的信息。

A cxx_library 是一个 C 或 C++(或 Objective C)库,可以静态编译或共享。

A cxx_binary 是 C 或 C++(或 Objective C)可执行文件。您可以 运行 cxx_binary 的结果,在 Buck 外部和 genrule 内部。

A cxx_binary 必须包含提供 main 函数的 translation-unit (srcs),因为这将是可执行文件的 entry-point。

在参数方面,最大的区别是cxx_libraryexported_headers。这些是 headers,任何依赖它的库都可以访问。

您可能会发现这很有趣:https://github.com/njlr/buckaroo-protobuf-example