为 c++ 构建 nana 时出现“make”错误

Posted

技术标签:

【中文标题】为 c++ 构建 nana 时出现“make”错误【英文标题】:"make" error when building nana for c++ 【发布时间】:2017-06-01 08:35:17 【问题描述】:

我一直在尝试为 c++ 安装 nana 库。我使用过这些指南: https://github.com/qPCR4vir/nana-docs/wiki/Installation

https://github.com/qPCR4vir/nana-docs/wiki/Install-and-use-nana-with-mingw---step-by-step

我卡在“在您使用的 IDE/构建系统中创建静态链接库解决方案,并将放置在 NanaPath/source 及其所有子目录中的所有文件添加到项目中。然后编译解决方案,您将在类似于 NanaPath/build/bin/IDEName 的路径中获得一个静态链接文件 NanaStatic。”

我下载了 MinGW、git 和 cmake,就像它说的那样。我打开了 bat 文件,用链接运行了“git clone”,运行了

cmake -G "MinGW Makefiles"

它完成了它并成功完成了。然后我尝试运行“make”,当它出现时它达到了 6%:

In file included from C:/Users/.../nana/verbose_prepocessor.hpp:99:0,
from C:\Users\...\nana\source\deploy.cpp:242:C/Users/.../nana/include/filesystem/filesystem.hpp:71:39: fatal error: experimental/filesystem: No such file or directory
#    include<experimental/filesystem>
                                     ^
compilation terminated.
make[2]: *** [CMakeFiles\nana.dir\build.make:163: CMakeFiles/nana.dir/source/deploy.cpp.obj] Error 1
make[1]: *** [CMakeFiles\Makefile2:67: CMakeFiles/nana.dir/all] Error 2
make: *** [Makefile:129: all] Error 2

我尝试使用不同的代码源(git 和 sourceforge),但这并没有什么不同。我尝试使用 GUI cmake,但我遇到了其他错误,即无法识别 MinGW。我在网上四处寻找答案,但他们大多会回到我正在使用的指南。我用 gcc/g++ --version 检查了我的 GCC 和 G++ 版本,它们都是 6.3.0。

我会接受任何建议/建议,谢谢!

【问题讨论】:

你用的是什么编译器?编辑:对不起,我一定还在睡觉...... g++ 从nuwen.net/mingw.html 下载我尝试了建议的tdm-gcc.tdragon.net 但找不到“open_distro_window.bat” 尝试使用-DNANA_CMAKE_NANA_FILESYSTEM_FORCE=True 运行cmake,看看是否有帮助。 快到了!那行得通,现在 nana 已成功构建。现在我正在尝试将所有内容合并到 Eclipse 中。我对指南的语言有点困惑,但我将 \nana\include(原始代码)放在“包含”选项卡中,将 NANA_MINGW 和 NANA_UNICODE 放在符号下,\Program Files (x86)\nana(它构建的地方)库路径和库中的 \Program Files (x86)\nana\lib\libnana.a(找不到 libgdi32.a、libcomdlg32.a 和 libz.a)。实验/文件系统再次出现致命错误。 【参考方案1】:

我没有使用过 Eclipse,所以对此我无能为力。但我会尽力帮助娜娜:

原来没有std::filesystem,nana 提供了一个 JinHao 发明的。随着 std::experimental::filsystem 候选者的出现,在某些编译器的某些版本的 sdt:: c++ 库中的一个实验性文件系统,我们将 nana 文件系统调整为它的部分实现。然后 nana 尝试将自己配置为使用提供的std::(或 Boost)实现,或者如果它不存在则使用nana::filesystem。似乎 MinGW 的文件系统有问题,我不确定,但您可以在这里阅读:https://github.com/Alexpux/MINGW-packages/issues/2292

请尝试了解您的情况并告诉我们。然后,我们将尝试修复 nana 的配置,即使在这种情况下也能正常工作。 您始终可以简单地选择(强制)使用 nana 实现。请使用所有相同的选项编译 nana 库和您的项目,包括您使用的文件系统。例如将-DNANA_CMAKE_NANA_FILESYSTEM_FORCE=True 添加到您的cmake 或在您构建的系统(或IDE)中定义NANA_FILESYSTEM_FORCE

【讨论】:

啊...我们需要帮助来改进和实现文档:-) 我尝试使用 cygwin 并运行 cmake -G "Eclipse CDT4 - Unix Makefiles" (抱歉,这里是新的,当我想换行时一直按 Enter 太早)我尝试使用 cygwin,通过 git 安装 nana,然后运行 ​​cmake -G "Eclipse CDT4 - Unix Makefiles"。然后我运行“make”并得到这个长错误(下一条评论) 在 /home/Cindy/nana/source/detail/platform_spec_selector.hpp:20:0 包含的文件中,来自 /home/Cindy/nana/source/deploy.cpp:24: /home/ Cindy/nana/source/detail/posix/platform_spec.hpp:27:22:致命错误:X11/Xlib.h:没有这样的文件或目录#include ^ 编译终止。 make[2]: *** [CMakeFiles/nana.dir/build.make:159: CMakeFiles/nana.dir/source/deploy.cpp.o] 错误 1 ​​make[1]: *** [CMakeFiles/Makefile2: 68: CMakeFiles/nana.dir/all] 错误 2 make: *** [Makefile:128: all] 错误 2 嗯... X11,在 Windows 中?你可以为 Eclipse 使用一些 cmake Generator for windows 吗?

以上是关于为 c++ 构建 nana 时出现“make”错误的主要内容,如果未能解决你的问题,请参考以下文章

在代码块中安装 nana 时出现问题

在 Visual Studio 2008 中将应用程序构建为发行版时出现问题 - C++

构建包时出现 Cmake 错误

为avr构建代码时出现cmake构建问题

在编译c++代码时出现如下错误: 望速度解答,很急。。谢谢!

构建使用 Eigen(用于线性代数的 C++ 模板库)的项目时出现编译器错误