這個問題幾乎說明了一切 - 我怎樣才能將file2.vala
導入file1.vala
?如何導入Vala中的其他文件?
6
A
回答
8
你不直接做。如果您運行valac file1.vala file2.vala
,就好像您將它們編譯爲一個大文件。
如果您想讓它們可重用,那麼您可能需要一個共享庫。在這種情況下,編譯一個,以產生一個C頭文件和一個VAPI定義:
valac --vapi file1.vapi -H file1.h --library libfile1.so file1.vala
第二個然後可以消耗此:
valac --pkg file1 file2.vala
這假設VAPI文件已被安裝。如果不是這種情況,則需要通過--vapidir
和file1.vapi
存在的位置,可能是.
。同樣,您需要通知C編譯器關於file1.h
與-X -I/directory/containing
共存的位置,再次可能是-X -I.
。最後,您需要通過-X -L/directory/containing -X -lfile1
告訴C鏈接器libfile1.so
。這是一個特定的平臺,你可以使用AutoMake來平滑差異,儘管這涉及更多一點。 Ragel是如何在Vala中使用AutoMake的常用項目。
4
只是apmasell提供:
main.vala:
extern void cfunction(string text);
void main()
{
first f = new first();
f.say_something(f.mytext);
cfunction("c text\n");
}
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);
}
}
您可以通過使用類和公共變量使用多個文件
text.c:
#include <stdio.h>
void cfunction(const char *s)
{
puts("This is C code");
printf("%s\n", s);
}
與編譯:valac class.vala main.vala text.c
,你可以看到,你甚至可以用C代碼
相關問題
- 1. 如何從其他文件導入ArrayList?
- 2. 如何觀看一個導入其他文件的大文件?
- 3. 如何從Scala中的其他目錄導入文件?
- 4. 如何將文件導入優先於其他文件
- 5. 如何在導入其他.py文件時運行.pyc文件?
- 6. 如何導入配置TS文件在其他ionic2 TS文件
- 7. 如何從其他coffeescript文件導入文件
- 8. 從其他py文件導入變量
- 9. 無法將scss文件導入到其他scss文件中
- 10. 如何從其他文件夾導入python庫?
- 11. 如何將junit結果導入csv或其他文件?
- 12. 如何從外部文件夾導入或添加其他類?
- 13. 如何從其他.h文件導入IBActions?
- 14. 如何將類導入Python中的同一文件中的其他類
- 15. 如何在Android Studio中使用java中的其他文件導入類?
- 16. 如何從CSV導入其他信息(列)到最終寫入的CSV文件
- 17. 如何從流中的其他文件導出某些內容?
- 18. 從python中的其他目錄導入文件?
- 19. 從xcode中的其他目錄導入文件
- 20. 導入python和全局變量中的其他文件
- 21. 導入HTML代碼插入其他的文件
- 22. Eclipse的文件>導入「其他」缺少的Maven插件2
- 23. 將HTML文件導入其他HTML文件
- 24. GraphEngine TSL文件是否可以導入其他TSL文件?
- 25. 如何從其他文件
- 26. 插入其他PHP文件
- 27. 是否可以從其他子文件夾中的其他子文件夾自動導入模塊?
- 28. 無法從其他目錄中導入java文件
- 29. 從功能文件中使用變量的其他文件導入功能
- 30. IntelliJ:導入play.api._打破其他導入