为 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以上是关于为 c++ 构建 nana 时出现“make”错误的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio 2008 中将应用程序构建为发行版时出现问题 - C++