如何使用valac编译器链接目标文件生成可执行文件?
使用Valac链接目标文件生成可执行文件
Valac本身不支持直接将.o目标文件作为源文件输入,它仅接受.vala、.vapi、.gs和.c类型的文件,这就是你执行命令时报错的原因。要通过Valac完成目标文件的链接,需要利用--Xcc参数将链接相关的参数传递给底层的GCC。
正确命令写法
你可以用两种方式实现:
- 逐个传递参数:
valac --Xcc main.vala.o --Xcc statlib.o --Xcc -lm --Xcc -lglib-2.0 -o my_executable
- 合并参数传递(需用引号包裹):
valac --Xcc "main.vala.o statlib.o -lm -lglib-2.0" -o my_executable
参数说明
--Xcc的作用是将其后的参数直接传递给Valac调用的C编译器(GCC),这样Valac会跳过对.o文件的类型检查,由GCC负责完成目标文件的链接工作。其中-o my_executable用来指定输出的可执行文件名,你可以替换成自己需要的名称。
内容的提问来源于stack exchange,提问作者rnso
相关产品推荐
相关产品推荐

