Ninja编译的二进制文件为什么比valac编译的二进制文件大?

问题描述 投票:0回答:1

相同的源文件。

指令编译使用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
)

并使用忍者进行编译。

⭕ 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个回答
0
投票
因为没有为valac启用调试,但是介子默认情况下启用了调试。将-g添加到valac,输出大小应接近相等。

[要查看ninjavalac如何运行工具进行构建,请在两个命令中都指定-v以启用详细选项。

我认为,较小的大小差异来自链接到它们的文件名。

© www.soinside.com 2019 - 2024. All rights reserved.