当我尝试在XCode(版本5)中构建一个小型C ++ X11 / Xlib程序时,会出现以下“Apple Mach-O链接器(Id)错误。”
错误:
代码:
#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 。
我是否只是错过了构建设置,或者是否有可能需要安装的内容我忽略了?
非常感谢任何帮助!
答案 0 :(得分:3)
事实证明我收到了这些错误,因为我没有在XCode中正确设置标志。
要解决此问题,请转到项目的“构建设置”,然后将“其他链接标志”添加到标记中:
-I/usr/X11R6/include -L/usr/X11R6/lib -lX11
答案 1 :(得分:0)
这只是意味着您没有链接库。请参阅构建日志,看看是否链接了库。
如果没有,则链接它。如果它仍然是链接的,那么它可能没有功能。