X11/Xlib.h:没有这样的文件或目录 Windows 10

Posted

技术标签:

【中文标题】X11/Xlib.h:没有这样的文件或目录 Windows 10【英文标题】:X11/Xlib.h: No such file or directory Windows 10 【发布时间】:2021-05-08 14:05:27 【问题描述】:

我正在使用 FLTK lib 使用 c++ 构建一些图表的学校项目:

这里是基础教程的来源:

https://github.com/cortical-iv/hello_fltk

使用命令 make 构建此代码时,我收到此错误:

X11/Xlib.h: 没有这样的文件或目录

我搜索了一下,发现Linux系统上一般都使用X11 lib!

所以,请知道如何在 Windows 上进行这项工作!

【问题讨论】:

来自fltk.org 网站:“FLTK 是一个跨平台的 C++ GUI 工具包,适用于 UNIX/Linux (X11)、Microsoft Windows ...”。所以,它也应该可以在 Windows 上运行。 您使用什么来构建 Windows C++ 应用程序?您是在命令行中构建,还是使用 VisualStudio 或类似工具?无论您使用什么,都应该阅读以下内容:fltk.org/doc-1.4/intro.html#intro_windows 我成功地从这个链接运行了最初的 FLTK 教程:c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/… 但是在尝试适应我的情况时,我现在收到这个错误:错误 LNK2001 未解析的外部符号“公共:__thiscall Simple_window::Simple_window(struct Graph_lib::Point,int,int,class std::basic_string,class std::allocator > const &)" (??0Simple_window@ @QAE@UPoint@Graph_lib@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) fltk_win32_app 【参考方案1】:

尝试添加到 Makefile 第 2 行 fltk-config --cflags:

CFLAG = -std=c++14 `fltk-config --cflags`

您可能正在为 64 位 Windows 进行编译。 FLTK 要求定义 WIN32,即使它是在 64 位 Windows 上编译的。如果未定义 WIN32,则 FLTK 标头将包含在 LINUX 操作系统而不是 Windows 上使用的文件。

【讨论】:

我成功地从这个链接运行了最初的 FLTK 教程:c-jump.com/bcc/common/Talk2/Cxx/FltkInstallVC/… 但是在尝试适应我的情况时,我现在收到这个错误:错误 LNK2001 未解析的外部符号“公共:__thiscall Simple_window::Simple_window(struct Graph_lib::Point,int,int,class std::basic_string,class std::allocator > const &)" (??0Simple_window@ @QAE@UPoint@Graph_lib@@HHABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) fltk_win32_app @MohamedLamineBarghuda:这是一个链接器错误。这意味着您没有 .lib 文件或项目属性链接器设置未设置为使用它。也可能是您使用与项目不同的设置构建了库。您在 @ 和其他符号中看到的一些噪音是对调试/发布和静态/DLL 单/多线程之间的差异进行编码。使所有这些设置匹配。【参考方案2】:

FTR:FLTK 1.3.x(和较旧的 1.1.x)要求编译器宏 WIN32 由构建系统设置是正确的,即在编译器设置中的命令行或 Visual Studio 中。这是(曾经)一种非标准的方法,并且在 FLTK 1.4 中进行了更改。

在 FLTK 1.4(尚未发布)中,我们使用标准的 _WIN32 宏(带有前导下划线),它通常在 Windows [1] 上所有已知的编译器环境中定义。对于 32 位和 64 位编译都是如此。

[1] 除非您使用带有 Cygwin dll(POSIX 兼容层)的 Cygwin 目标进行构建。 (如果您不知道那是什么,请不要在意。)

【讨论】:

以上是关于X11/Xlib.h:没有这样的文件或目录 Windows 10的主要内容,如果未能解决你的问题,请参考以下文章

C++ 编译错误,包括 X11/X.h X11/Xlib.h

在 Ubuntu 中找不到 X11/Xlib.h

在 Mac OS X Mountain Lion(或更高版本)和 Linux 上使用 X11/Xlib.h

Xlib-鼠标点击

Xlib 应用被覆盖遮挡或者移出屏幕时,获取窗口截图

Xlib-鼠标移动