使用Xlib时在XCode中链接错误

时间:2013-12-06 04:26:46

标签: c++ xcode macos x11 xlib

当我尝试在XCode(版本5)中构建一个小型C ++ X11 / Xlib程序时,会出现以下“Apple Mach-O链接器(Id)错误。”

错误:

The displayed linking error

代码:

#include <iostream>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <string>

using namespace std;

int main(int argc, const char * argv[])
{
    Display *d;
    Window w;
    XEvent e;
    string msg = "Hello, World!";
    int s;

    d = XOpenDisplay(NULL);
    if (d == NULL) {
        fprintf(stderr, "Cannot open display\n");
        exit(1);
    }

    s = DefaultScreen(d);
    w = XCreateSimpleWindow(d, RootWindow(d, s), 10, 10, 100, 100, 1,
                            BlackPixel(d, s), WhitePixel(d, s));
    XSelectInput(d, w, ExposureMask | KeyPressMask);
    XMapWindow(d, w);

    while (1) {
        XNextEvent(d, &e);
        if (e.type == Expose) {
            XFillRectangle(d, w, DefaultGC(d, s), 20, 20, 10, 10);
            XDrawString(d, w, DefaultGC(d, s), 10, 50, msg.c_str(), (int)msg.length());
        }
        if (e.type == KeyPress)
            break;
    }

    XCloseDisplay(d);
    return 0;
}

我已按照another post中的建议将 / opt / X11 / include / opt / X11 / lib 添加到构建设置中的标题搜索路径此链接器错误仍然出现。

我目前正在运行OSX 10.8.5,并且我安装了 XQuartz

我是否只是错过了构建设置,或者是否有可能需要安装的内容我忽略了?

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:3)

事实证明我收到了这些错误,因为我没有在XCode中正确设置标志。

要解决此问题,请转到项目的“构建设置”,然后将“其他链接标志”添加到标记中:

-I/usr/X11R6/include -L/usr/X11R6/lib -lX11

答案 1 :(得分:0)

这只是意味着您没有链接库。请参阅构建日志,看看是否链接了库。

如果没有,则链接它。如果它仍然是链接的,那么它可能没有功能。