2013-04-14 278 views
1

我想編譯一個依賴libappindicator和CMake的Vala項目。用CMake編譯Vala項目

但是,請放棄這種輸出:

Linking C executable calm 
CMakeFiles/calm.dir/src/CalmWindow.c.o: In function `__lambda6_': 
CalmWindow.c:(.text+0x5b8): undefined reference to `app_indicator_set_status' 
CMakeFiles/calm.dir/src/CalmWindow.c.o: In function `calm_calm_indicator_construct': 
CalmWindow.c:(.text+0x6ee): undefined reference to `app_indicator_new' 
CalmWindow.c:(.text+0x746): undefined reference to `app_indicator_set_status' 
CalmWindow.c:(.text+0x76c): undefined reference to `app_indicator_set_attention_icon' 
CalmWindow.c:(.text+0xe87): undefined reference to `app_indicator_set_menu' 
collect2: ld gab 1 als Ende-Status zurück 
make[2]: *** [calm] Fehler 1 
make[1]: *** [CMakeFiles/calm.dir/all] Fehler 2 
make: *** [all] Fehler 2 

是有毛病我的CMakeLists.txt?該代碼是在這裏舉行:https://code.launchpad.net/~alexander-wilms/calm/calm

此命令的作用:

valac -g --pkg gtk+-3.0 --pkg gstreamer-0.10 --pkg gstreamer-audio-0.10 --pkg granite --pkg appindicator3-0.1 CalmApp.vala Calm.vala CalmWindow.vala 
+0

什麼是鏈接命令CMake的嘗試運行? – apmasell

+0

這個?套餐 GTK + -3.0 的GStreamer-0.10 的GStreamer-AUDIO-0.10 花崗岩 appindicator3-0.1 我是新來的CMake和一般的構建自動化,所以我也跟着教程和調整了一點:HTTP:// bazaar.launchpad.net/~alexander-wilms/calm/calm/view/head:/CMakeLists.txt –

回答

1

它這樣工作:

[...] 
########### 
set(COMPILE_OPTIONS_VALA ${COMPILE_OPTIONS_VALA} -D USE_APPINDICATOR) 
set(PACKAGES_VALA ${PACKAGES_VALA} "appindicator3-0.1") 
########### 

include(ValaPrecompile) 
vala_precompile(VALA_C 
     src/Calm.vala 
     src/CalmApp.vala 
     src/CalmWindow.vala 
PACKAGES 
     gtk+-3.0 
     gstreamer-0.10 
     gstreamer-audio-0.10 
     appindicator3-0.1 
CUSTOM_VAPIS 
     vapi/config.vapi 
OPTIONS 
     --thread 
) 
[...]