【问题标题】:Why are the binaries generated by using Meson / Ninja much larger than those compiled by plain valac?为什么使用 Meson / Ninja 生成的二进制文件比普通 valac 编译的要大得多?
【发布时间】:2020-05-13 12:13:36
【问题描述】:

相同的源文件。

直接编译使用valac。

⭕ valac --pkg gtk+-3.0 -X -lm --pkg libcanberra src/Application.vala 
⭕ ls Application 
-rwxrwxr-x 1 eexpss 48K 05-13 19:59 Application

这是我的 meson.build 的一部分。

project('com.github.eexpress.cairo-timer', 'vala', 'c')

# i18n = import('i18n')

executable(
    meson.project_name(),
    'src/Application.vala',
    dependencies: [
        dependency('gtk+-3.0'),
#       dependency('cairo'),
        dependency('libcanberra')
    ],
#   link_args : '-X',
#   link_args : '-lm',
    link_args : ['-X', '-lm',],
    install: true
)

并使用ninja编译它。

⭕ cd build; ninja
⭕ ls com.github.eexpress.cairo-timer
-rwxrwxr-x 1 eexpss 98K 05-13 17:02 com.github.eexpress.cairo-timer

所以二进制文件比上面一个大。为什么?

【问题讨论】:

    标签: binary ninja meson-build


    【解决方案1】:

    因为您没有为valac 启用调试,但介子默认启用它。将-g 添加到valac,输出大小应该接近相等。

    要查看 ninjavalac 如何运行工具来构建,请通过为这两个命令指定 -v 启用详细选项。

    正如我所假设的,微小的大小差异来自其中的文件名。例如,比较来自readelf --debug-dump=line hello 的输出以查看差异。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2012-08-14
      • 1970-01-01
      • 2012-04-13
      • 2017-03-30
      相关资源
      最近更新 更多