2013-04-14 70 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 
) 
[...]