相同的源文件。
指令编译使用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
因此二进制文件大于上面的文件。为什么?
valac
启用调试,但是介子默认情况下启用了调试。将-g
添加到valac
,输出大小应接近相等。[要查看ninja
和valac
如何运行工具进行构建,请在两个命令中都指定-v
以启用详细选项。
我认为,较小的大小差异来自链接到它们的文件名。