你不直接这样做.如果你运行valac file1.vala file2.vala,就好像你在一个大文件中编译它们一样.
如果您想让它们可重用,那么您可能需要一个共享库.在这种情况下,您编译一个以生成C头文件和VAPI定义:
valac --vapi file1.vapi -H file1.h --library libfile1.so file1.vala
Run Code Online (Sandbox Code Playgroud)
第二个可以消耗这个:
valac --pkg file1 file2.vala
Run Code Online (Sandbox Code Playgroud)
这假设已安装VAPI文件.如果不是这种情况,您可能需要传递--vapidir和file1.vapi存在的位置..同样,你需要告知所在的C编译器file1.h与生活-X -I/directory/containing再次,大概-X -I..最后,您需要告诉C链接器哪里libfile1.so是via -X -L/directory/containing -X -lfile1.这是一个特定的平台,您可以使用AutoMake平滑差异,尽管这涉及更多.Ragel是如何在Vala中使用AutoMake的常用项目.
只是为了提供apmasell:
您可以使用类和公共变量来使用多个文件:
main.vala:
extern void cfunction(string text);
void main ()
{
first f = new first ();
f.say_something(f.mytext);
cfunction("c text\n");
}
Run Code Online (Sandbox Code Playgroud)
class.vala:
public class first {
public string mytext = "yolo\n";
public first ()
{
stdout.printf("text from constructer in first\n");
}
public void say_something(string text)
{
stdout.printf("%s\n", text);
}
}
Run Code Online (Sandbox Code Playgroud)
的text.c:
#include <stdio.h>
void cfunction(const char *s)
{
puts("This is C code");
printf("%s\n", s);
}
Run Code Online (Sandbox Code Playgroud)
编译: valac class.vala main.vala text.c
如您所见,您甚至可以使用C代码
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |