2013-03-07 107 views
0

无法构建我的C程序。X11函数具有未定义的引用,但它可以确定。 IDE不会抱怨这些库

我开发一个用v412程序来激活我的摄像头,并开始录制。 我有几个,包括:(他们都是OK)

#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
#include <getopt.h>    /* getopt_long() */ 
#include <unistd.h> 
#include <errno.h> 
#include <stdint.h> 

#include <sys/ipc.h> 
#include <sys/shm.h> 
#include <X11/Xlib.h> 
#include <X11/extensions/XShm.h> 

,这些功能是whitin/X11

我低于这个误差修改在Eclipse,Netbeans和代码::块,这样我相信这是一个SO问题。 他们不抱怨没有找到图书馆,也没有找到内部参考(包括在我的包括这些图书馆内)。

我试图在Ubuntu 12的Debian 6 Squeezy和7喘息。

||=== Build: Release in v4l2 (compiler: GNU GCC Compiler) ===| 
obj/Release/viewer.o||In function `image_destroy':| 
viewer.c|| undefined reference to `XDestroyImage'| 
viewer.c|| undefined reference to `XFreeGC'| 
viewer.c|| undefined reference to `XShmDetach'| 
viewer.c|| undefined reference to `XFreePixmap'| 
obj/Release/viewer.o||In function `image_create':| 
viewer.c|| undefined reference to `XCreateGC'| 
viewer.c|| undefined reference to `XGetWindowAttributes'| 
viewer.c|| undefined reference to `XShmCreateImage'| 
viewer.c|| undefined reference to `XShmAttach'| 
viewer.c|| undefined reference to `XCreateImage'| 
viewer.c|| undefined reference to `XShmQueryExtension'| 
viewer.c|| undefined reference to `XShmPixmapFormat'| 
viewer.c|| undefined reference to `XShmCreatePixmap'| 
obj/Release/viewer.o||In function `image_put':| 
viewer.c|| undefined reference to `XPutImage'| 
viewer.c|| undefined reference to `XShmPutImage'| 
obj/Release/viewer.o||In function `main':| 
viewer.c:(.text.startup+0x186)||undefined reference to `XOpenDisplay'| 
viewer.c:(.text.startup+0x1ac)||undefined reference to `XScreenOfDisplay'| 
viewer.c:(.text.startup+0x1e9)||undefined reference to `XCreateSimpleWindow'| 
viewer.c:(.text.startup+0x244)||undefined reference to `XMapRaised'| 
viewer.c:(.text.startup+0x25e)||undefined reference to `XStoreName'| 
viewer.c:(.text.startup+0x27b)||undefined reference to `XGetWindowAttributes'| 
viewer.c:(.text.startup+0x8c6)||undefined reference to `XPending'| 
viewer.c:(.text.startup+0x8e3)||undefined reference to `XNextEvent'| 
viewer.c:(.text.startup+0xa85)||undefined reference to `XPending'| 
viewer.c:(.text.startup+0xaa2)||undefined reference to `XNextEvent'| 
viewer.c:(.text.startup+0xedf)||undefined reference to `XPending'| 
viewer.c:(.text.startup+0xefc)||undefined reference to `XNextEvent'| 
||=== Build failed: 26 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===| 

我使用Debian 7喘息......我想用这种方式来编译: GCC -02 -L在/ usr/X11R6/lib目录-lX11 -lXext -o观众viewer.c

此路径不存在,我如何找到正确的路径?

+0

你的链接顺序似乎是不正确的。 [A有帮助回答一个类似的问题] [1] [1]:http://stackoverflow.com/a/18326228/2081316 – orbitor 2013-12-10 20:08:55

回答

1

其他一些动态链接X程序的系统上的路径上运行LDD上看到库是由加载。例如。

ldd /usr/bin/gnome-session 
相关问题