ubuntu 12,04 编译musca报错

各种窗口管理器和美化相关
回复
daipeng45645
帖子: 11
注册时间: 2012-03-23 13:34

ubuntu 12,04 编译musca报错

#1

帖子 daipeng45645 » 2015-03-17 11:20

在debian 7上成功编译配置成功,不过在ubuntu上始终报错.

libx11-dev包也装了。以下是错误信息, 求帮助.


daipeng@daipeng:~/Desktop/musca-0.9.24$ make
cc -Wall -g -I/usr/X11R6/include -L/usr/X11R6/lib -lc -lm -lX11 -o musca musca.c
musca.c: In function ‘sanity_head’:
musca.c:442:7: warning: variable ‘found’ set but not used [-Wunused-but-set-variable]
int found = 0;
^
musca.c: In function ‘frame_grow’:
musca.c:1676:8: warning: variable ‘changes’ set but not used [-Wunused-but-set-variable]
ubyte changes = 0;
^
musca.c: In function ‘com_frame_split’:
musca.c:2203:19: warning: variable ‘ss’ set but not used [-Wunused-but-set-variable]
ucell fs = f->h, ss = sh; ubyte dir = VERTICAL;
^
/tmp/ccaazk8f.o: In function `get_color':
/home/daipeng/Desktop/musca-0.9.24/musca.c:86: undefined reference to `XAllocNamedColor'
/tmp/ccaazk8f.o: In function `process_binding':
/home/daipeng/Desktop/musca-0.9.24/musca.c:129: undefined reference to `XStringToKeysym'
/home/daipeng/Desktop/musca-0.9.24/musca.c:130: undefined reference to `XKeysymToKeycode'
/tmp/ccaazk8f.o: In function `atom_set':
/home/daipeng/Desktop/musca-0.9.24/musca.c:235: undefined reference to `XChangeProperty'
/tmp/ccaazk8f.o: In function `atom_get_string':
/home/daipeng/Desktop/musca-0.9.24/musca.c:244: undefined reference to `XGetTextProperty'
/home/daipeng/Desktop/musca-0.9.24/musca.c:253: undefined reference to `Xutf8TextPropertyToTextList'
/home/daipeng/Desktop/musca-0.9.24/musca.c:262: undefined reference to `XFreeStringList'
/home/daipeng/Desktop/musca-0.9.24/musca.c:264: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `atom_get':
/home/daipeng/Desktop/musca-0.9.24/musca.c:276: undefined reference to `XGetWindowProperty'
/home/daipeng/Desktop/musca-0.9.24/musca.c:287: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `window_on_screen':
/home/daipeng/Desktop/musca-0.9.24/musca.c:377: undefined reference to `XGetWindowAttributes'
/tmp/ccaazk8f.o: In function `window_create':
/home/daipeng/Desktop/musca-0.9.24/musca.c:389: undefined reference to `XCreateSimpleWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:393: undefined reference to `XAllocClassHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:394: undefined reference to `XSetClassHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:395: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `window_stack':
/home/daipeng/Desktop/musca-0.9.24/musca.c:406: undefined reference to `XRaiseWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:407: undefined reference to `XRestackWindows'
/home/daipeng/Desktop/musca-0.9.24/musca.c:408: undefined reference to `XRestackWindows'
/tmp/ccaazk8f.o: In function `sanity_head':
/home/daipeng/Desktop/musca-0.9.24/musca.c:440: undefined reference to `XQueryTree'
/home/daipeng/Desktop/musca-0.9.24/musca.c:465: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `ewmh_clients':
/home/daipeng/Desktop/musca-0.9.24/musca.c:684: undefined reference to `XFlush'
/tmp/ccaazk8f.o: In function `client_configure':
/home/daipeng/Desktop/musca-0.9.24/musca.c:738: undefined reference to `XGetTransientForHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:748: undefined reference to `XGetWindowAttributes'
/home/daipeng/Desktop/musca-0.9.24/musca.c:762: undefined reference to `XGetWMNormalHints'
/home/daipeng/Desktop/musca-0.9.24/musca.c:806: undefined reference to `XConfigureWindow'
/tmp/ccaazk8f.o: In function `client_display':
/home/daipeng/Desktop/musca-0.9.24/musca.c:861: undefined reference to `XSetWindowBorderWidth'
/home/daipeng/Desktop/musca-0.9.24/musca.c:862: undefined reference to `XSetWindowBorderWidth'
/tmp/ccaazk8f.o: In function `client_border':
/home/daipeng/Desktop/musca-0.9.24/musca.c:878: undefined reference to `XSetWindowBorder'
/home/daipeng/Desktop/musca-0.9.24/musca.c:879: undefined reference to `XSetWindowBorder'
/tmp/ccaazk8f.o: In function `client_focus':
/home/daipeng/Desktop/musca-0.9.24/musca.c:892: undefined reference to `XSetInputFocus'
/tmp/ccaazk8f.o: In function `client_show':
/home/daipeng/Desktop/musca-0.9.24/musca.c:906: undefined reference to `XMapWindow'
/tmp/ccaazk8f.o: In function `client_hide':
/home/daipeng/Desktop/musca-0.9.24/musca.c:912: undefined reference to `XUnmapWindow'
/tmp/ccaazk8f.o: In function `client_shrink':
/home/daipeng/Desktop/musca-0.9.24/musca.c:918: undefined reference to `XUnmapWindow'
/tmp/ccaazk8f.o: In function `client_kill':
/home/daipeng/Desktop/musca-0.9.24/musca.c:946: undefined reference to `XKillClient'
/home/daipeng/Desktop/musca-0.9.24/musca.c:958: undefined reference to `XSendEvent'
/tmp/ccaazk8f.o: In function `frame_create':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1105: undefined reference to `XSetWindowBackgroundPixmap'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1106: undefined reference to `XSelectInput'
/tmp/ccaazk8f.o: In function `frame_destroy':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1112: undefined reference to `XDestroyWindow'
/tmp/ccaazk8f.o: In function `frame_focus_hidden':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1143: undefined reference to `XSetInputFocus'
/tmp/ccaazk8f.o: In function `frame_update':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1193: undefined reference to `XSetWindowBackgroundPixmap'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1201: undefined reference to `XSetWindowBorderWidth'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1202: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1205: undefined reference to `XSetWindowBorderWidth'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1206: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:1210: undefined reference to `XMapWindow'
/tmp/ccaazk8f.o: In function `frame_unfocus':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1219: undefined reference to `XSetWindowBorder'
/tmp/ccaazk8f.o: In function `frame_focus':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1229: undefined reference to `XSetWindowBorder'
/tmp/ccaazk8f.o: In function `frame_hide':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1280: undefined reference to `XUnmapWindow'
/tmp/ccaazk8f.o: In function `frame_hsplit':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1287: undefined reference to `ceil'
/tmp/ccaazk8f.o: In function `frame_vsplit':
/home/daipeng/Desktop/musca-0.9.24/musca.c:1304: undefined reference to `ceil'
/tmp/ccaazk8f.o: In function `group_stack':
/home/daipeng/Desktop/musca-0.9.24/musca.c:2132: undefined reference to `XMoveResizeWindow'
/tmp/ccaazk8f.o: In function `manage':
/home/daipeng/Desktop/musca-0.9.24/musca.c:2978: undefined reference to `XGetTransientForHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3019: undefined reference to `XSelectInput'
/tmp/ccaazk8f.o: In function `quiz_window':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3040: undefined reference to `XGetWindowAttributes'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3042: undefined reference to `XGetWMHints'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3044: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `createnotify':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3084: undefined reference to `XSelectInput'
/tmp/ccaazk8f.o: In function `configurerequest':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3100: undefined reference to `XGetTransientForHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3123: undefined reference to `XConfigureWindow'
/tmp/ccaazk8f.o: In function `handle_map':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3167: undefined reference to `XMoveResizeWindow'
/tmp/ccaazk8f.o: In function `maprequest':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3185: undefined reference to `XMapWindow'
/tmp/ccaazk8f.o: In function `mappingnotify':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3226: undefined reference to `XRefreshKeyboardMapping'
/tmp/ccaazk8f.o: In function `enternotify':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3239: undefined reference to `XCheckTypedEvent'
/tmp/ccaazk8f.o: In function `buttonpress':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3263: undefined reference to `XCheckTypedEvent'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3288: undefined reference to `XMapWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3288: undefined reference to `XMapWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3288: undefined reference to `XMapWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3288: undefined reference to `XMapWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3289: undefined reference to `XRaiseWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3289: undefined reference to `XRaiseWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3289: undefined reference to `XRaiseWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3289: undefined reference to `XRaiseWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3291: undefined reference to `XGrabPointer'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3303: undefined reference to `XAllowEvents'
/tmp/ccaazk8f.o: In function `buttonrelease':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3311: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3312: undefined reference to `XUngrabPointer'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3313: undefined reference to `XDestroyWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3313: undefined reference to `XDestroyWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3313: undefined reference to `XDestroyWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3313: undefined reference to `XDestroyWindow'
/tmp/ccaazk8f.o: In function `motionnotify':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3321: undefined reference to `XCheckTypedEvent'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3335: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3336: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3337: undefined reference to `XMoveResizeWindow'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3338: undefined reference to `XMoveResizeWindow'
/tmp/ccaazk8f.o: In function `insert_command':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3445: undefined reference to `XSelectInput'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3451: undefined reference to `XMaskEvent'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3464: undefined reference to `XMaskEvent'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3473: undefined reference to `XDestroyWindow'
/tmp/ccaazk8f.o: In function `find_window':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3486: undefined reference to `XGetTransientForHint'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3493: undefined reference to `XMapWindow'
/tmp/ccaazk8f.o: In function `find_clients':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3506: undefined reference to `XQueryTree'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3511: undefined reference to `XFree'
/tmp/ccaazk8f.o: In function `ungrab_stuff':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3519: undefined reference to `XUngrabKey'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3520: undefined reference to `XUngrabButton'
/tmp/ccaazk8f.o: In function `grab_stuff':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3534: undefined reference to `XGrabKey'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3537: undefined reference to `XGrabButton'
/tmp/ccaazk8f.o: In function `setup_numlock':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3575: undefined reference to `XGetModifierMapping'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3581: undefined reference to `XKeysymToKeycode'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3588: undefined reference to `XFreeModifiermap'
/tmp/ccaazk8f.o: In function `setup':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3610: undefined reference to `XSetErrorHandler'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3611: undefined reference to `XOpenDisplay'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3620: undefined reference to `XInternAtom'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3658: undefined reference to `XScreenOfDisplay'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3674: undefined reference to `XSelectInput'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3676: undefined reference to `XCreateFontCursor'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3676: undefined reference to `XDefineCursor'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3704: undefined reference to `XGrabKeyboard'
/home/daipeng/Desktop/musca-0.9.24/musca.c:3706: undefined reference to `XUngrabKeyboard'
/tmp/ccaazk8f.o: In function `process_event':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3754: undefined reference to `XFlush'
/tmp/ccaazk8f.o: In function `main':
/home/daipeng/Desktop/musca-0.9.24/musca.c:3769: undefined reference to `XNextEvent'
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
头像
astolia
论坛版主
帖子: 6436
注册时间: 2008-09-18 13:11

Re: ubuntu 12,04 编译musca报错

#2

帖子 astolia » 2015-03-17 12:12

看样子是makefile里面这一句没写对 cc -Wall -g -I/usr/X11R6/include -L/usr/X11R6/lib -lc -lm -lX11 -o musca musca.c
该把链接目标放在库前面
参考:http://stackoverflow.com/questions/4513 ... -order-gcc
daipeng45645
帖子: 11
注册时间: 2012-03-23 13:34

Re: ubuntu 12,04 编译musca报错

#3

帖子 daipeng45645 » 2015-03-17 16:51

不太能看懂,正确的要怎么写呢?

还有这个东西我在debian 7上是可以编译通过的,就是ubuntu12.04上不行。内容是完全一样的
头像
astolia
论坛版主
帖子: 6436
注册时间: 2008-09-18 13:11

Re: ubuntu 12,04 编译musca报错

#4

帖子 astolia » 2015-03-17 23:44

就是把xxx.c放到所有-l的前面。debian7和ubuntu12.04又不一样,你凭什么就认为debian上能通过的ubuntu上也一定能?
daipeng45645
帖子: 11
注册时间: 2012-03-23 13:34

Re: ubuntu 12,04 编译musca报错

#5

帖子 daipeng45645 » 2015-03-18 13:03

我只是觉得gcc在debian和ubuntu上应该是一样的。差别可能就在库有没有或位置对不对。

还有把 xxx.c放到 -l前面试过了,不行。一样的问题。
头像
astolia
论坛版主
帖子: 6436
注册时间: 2008-09-18 13:11

Re: ubuntu 12,04 编译musca报错

#6

帖子 astolia » 2015-03-18 22:19

makefile里面有三行,三行都要改。实际上这正是两者gcc的差异,而非你臆测的一样。ubuntu11.04开始默认启用链接参数-as-needed,而debian没有这么干
daipeng45645
帖子: 11
注册时间: 2012-03-23 13:34

Re: ubuntu 12,04 编译musca报错

#7

帖子 daipeng45645 » 2015-04-16 14:05

恩,是这个问题,搞定了
回复