我正在使用CentOS 6.0 Linux系统,出于安全考虑,该系统受到各种各样的限制。它没有互联网访问权限,所以我在其上安装的任何东西都必须手动完成(例如,gcc没有包含在内,为了得到它,我必须手动下载,复制和安装一堆rpms)。
也不包括:任何X11头文件。我并不是特别精通linux,而且我的编码经验主要是在C#中。我希望.h文件的工作方式与.dll文件非常相似,我可以将X11头文件从完整的Centos 6.0安装复制到我受限制的文件中(进入 / usr / include / X11 / )< / p>
事实并非如此。尝试编译包含Xlib.h头文件的C程序并调用XOpenDisplay命令会返回错误:test.c:(.text+0x11): undefined reference to 'XOpenDisplay'
是否有正确的方法将头文件安装到这样的机器上?
(我可以在我的完整Centos安装上编译并将文件移动到受限制的机器上,但这是一个冗长的多步骤过程 - 出于安全原因 - 这使得调试非常繁琐。)
答案 0 :(得分:1)
test.c:(.text+0x11): undefined reference to 'XOpenDisplay'
这是对缺少的库的引用,而不是头文件。如果编译器无法找到标题,您将得到类似的结果:
fatal error: x11.h: No such file or directory
您需要确保包含X11库(与-lX11链接)。
答案 1 :(得分:1)
正确的方法是“手动下载,复制和安装一堆rpms”。逐个复制文件不是解决方案。