我正在使用bazel来构建一个共享库,但是输出的文件大小比预期的要大得多;为了比较,我也在BUILD文件中构建了一个具有相同deps和src的二进制文件,二进制文件的输出大小要小得多;代码示例:
cc_binary(
name = "server",
srcs = ["server.cc"],
deps = [...]
) # the binary
cc_binary(
name = "libs.so",
srcs = ["server.cc"],
deps = [...],
linkshared = 1
) # the shared library
libs.so
比server
大约5倍;似乎linkshared选项将deps
中的所有符号打包到共享库中,包括未使用的函数、变量(nm
显示libs.so
包含的符号比server
多得多);如何将所需的符号链接到共享库?
1条答案
按热度按时间qjp7pelc1#
好吧,如果你正在编译一个共享库,那么就没有“未使用的函数”这回事了。你正在创建一个库,其中包含可执行文件可以使用的函数。