0
我現在在玩LLVM,它是JIT。我在JIT相當感興趣,然後我寫了一個小的GTK +的Hello World:llvm-link與外部庫
#include <gtk/gtk.h>
int main()
{
gtk_init(NULL, NULL);
GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (win, "delete-event", G_CALLBACK (gtk_main_quit), NULL);
GtkWidget *lbl = gtk_label_new ("hello world");
gtk_container_add (GTK_CONTAINER (win), lbl);
gtk_widget_show_all (win);
gtk_main();
return 0;
}
我編譯成位碼是這樣的:
clang -emit-llvm -S a.c `pkg-config --cflags gtk+-3.0`
llvm-link a.s -o a.o
但是當我運行它
> lli a.o
LLVM ERROR: Program used external function 'gtk_init' which could not be resolved!
我試圖找出如何在鏈接時添加外部庫,但我什麼也沒找到。有沒有辦法讓它運行?
是的,它確實有效!非常感謝! – ekd123
如果你有自己的庫函數,那麼你如何使用LD_PRELOAD,也就是說,他們沒有在其他地方定義過? – MetallicPriest