X11函数与未定义的引用,但它似乎是好的.IDE不会抱怨这些库
X11 functions with undefined reference but It seens to be ok. IDE does not complains about those libraries
无法构建我的C程序。
我正在开发一个v4l2程序来激活我的网络摄像头并开始录制。我有几个包括:(他们都很好)
#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>
这些函数是whittin/X11
如果在Eclipse, Netbeans和Code::Blocks中出现以下错误,那么我确信这是一个S.O问题。他们不会抱怨找不到库或找不到内部引用(包括在我的include中那些库中的引用)。
我试过Ubuntu 12, Debian 6 Squeezy和7 Wheezy。
||=== 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 Wheeze…我试图以这种方式编译:-lX11 -lXext -o viewer.c
此路径不存在,如何找到正确的路径?
在系统上其他动态链接的X程序的路径上运行ldd,看看这些库是从哪里加载的。例如
ldd /usr/bin/gnome-session
相关文章:
- 当调用switch语句中的函数时(即使函数不包含循环),似乎是永不结束的循环的问题
- 工会成员的析构函数似乎是自动调用的
- 对GLFW / Vulkan的未定义引用,尽管库似乎是链接的
- C 程序如果功能中的语句不执行.在逻辑上似乎是错误的
- 为什么没有参数的构造函数似乎是此代码的问题
- 立方体的正态似乎是向内指向
- 对于特定情况的整数溢出似乎是由整数溢出引起的错误
- 在Stdout上似乎是僵局
- 这个逻辑似乎是正确的,但它不起作用.有没有错
- 有没有更好的方法可以使此代码线程安全?线程局部静态似乎是一个生硬的工具
- Travis CI似乎是从错误的Stdlib读书
- 我的功能似乎是正确的,但我会收到编译错误
- 这似乎是C Primer第5版中的错误
- 这似乎是 clang++ 编译器中的一个错误
- 似乎是随机程序在完成C++时失败
- 我正在收到错误的“ list :: ShowList”:功能风格的初始化器似乎是我的CPP文件中的函数定义'
- 我在检查字符串时得到"Invalid utf 8 error",但当我使用 std::cout 时似乎是正确的
- 捕获构造函数抛出的异常似乎是不可能的
- 无符号和有符号int(对我来说)之间的比较似乎是必需的(c++)
- X11函数与未定义的引用,但它似乎是好的.IDE不会抱怨这些库