Nana 用 C++ 制作 GUI

Posted

技术标签:

【中文标题】Nana 用 C++ 制作 GUI【英文标题】:Make GUI in C++ by Nana 【发布时间】:2015-06-07 13:07:13 【问题描述】:

我正在尝试用 C++ 制作一个轻量级的 GUI 应用程序,有人建议我使用 Nana library。

我下载了 zip 文件,但我不知道如何继续。我解压了,根据instructions,我必须要

在您使用的 IDE 中创建静态链接库解决方案,并将放置在 NanaPath/source 及其所有子目录中的所有文件添加到解决方案中。然后编译解决方案,你会在路径 NanaPath/build/bin/IDEName 中得到一个 >static 链接文件 NanaStatic。

(第二步)

我不明白的是,如何“创建静态链接库”?我没有使用任何 IDE(而且很可能我不会使用)。我现在只有解压缩的文件。我正在使用MinGW g++ 编译器。

我已经阅读了以下帖子(不允许发布超过两个链接)

如何用g++创建静态库?

如何将nana编译成静态库

从多个来源创建静态库

但我找不到直接构建和使用 Nana 的方法。

你能给我一些指南吗?如果我知道如何编译 HelloWorld 示例(此处直接引用),我想我可以继续构建我的应用程序。

#include <nana/gui/wvl.hpp>
#include <nana/gui/widgets/label.hpp>

int main()

    using namespace nana;
    form    fm;
    label   lb(fm, fm.size());
    lb.caption(STR("Hello, World"));
    fm.show();
    exec();

提前致谢。

更新:错误(仅一小部分):

【问题讨论】:

你关注这个Install-and-use-nana-with-mingw---step-by-step了吗? 我安装了mingw,但找不到open_distro_window.bat 运行g++ --version 的输出是什么?您的 MinGW 版本可能太旧了。 @kirbyfan64sos。错误说 4.8.1 这使您正确。至少用4.8.2会更好 @qPCR4vir 有区别吗?毕竟,它们是次要版本。 【参考方案1】:

查看 Nana 的文件夹结构,在根文件夹下有一个 build 文件夹。在它下面,有两个文件夹引起了我的注意:

制作文件 cmake

我没有太多使用 cmake,但是使用了相当多的 makefile 来编译项目。您应该能够通过进入 build/makefile 并执行命令 make(如果您在 linux 下)来开始您的构建工作。这将启动编译和构建过程。

在此之后,您唯一需要做的就是在编译 HelloWorld 示例时链接到输出库。

【讨论】:

抱歉,我仍然卡住了:我是 Windows XP 用户,我对 make 一无所知。 make.exe(如果是make的Windows版本)和msys中的一样吗?我试过了,但它会导致编译错误。 别担心!老实说,我在 Windows 中从未使用过 MinGW。我使用了 cygwin 思想的 make make,这对我有用。你可能想看看cygwin.com。另外,如果你在 windows xp 下,可以考虑试试 Visual Studio 社区版——我知道你说过你不想使用 IDE,但是 Nana 也可以编译 Visual Studio(它甚至有一个正在构建的解决方案) 很抱歉,但这里仍然有问题:我安装了 cygwin 并尝试使用 make 构建库。如果我正确解释了这些步骤,我应该首先cdmakefile 目录然后make(它是正确的?)。但是,这会导致类似于编译错误的结果。 (查看我帖子中的错误信息更新) 在 makefile 中搜索 c++0x 并将其更改为 c++11。如果更改后它不起作用,请尝试使用 Visual Studio 编译它 - 我认为这是您最好的选择,因为您不熟悉 cmake 和 makefile 我想我以后会求助于 Visual Studio ......无论如何,谢谢。【参考方案2】:

您的 GCC 版本太旧。然而,娜娜有逻辑地认识到这一点并解决它。我不知道为什么它没有正确检测到它。尝试改用build/makefile-bkl 中的makefile 并使用make 命令make CXXFLAGS=-DSTD_NUMERIC_CONVERSIONS_NOT_SUPPORTED 来解决它。

【讨论】:

我不使用 MinGW。可以you see this

以上是关于Nana 用 C++ 制作 GUI的主要内容,如果未能解决你的问题,请参考以下文章

此 Nana 演示代码中使用的 C++ 功能是啥?

为啥c#可以在android和iOS上制作带有GUI的程序而c++不能? [关闭]

耦合 - C++ Web 或 GUI 桌面应用程序

用wxpython制作可以用于 特征筛选gui程序

matlab GUI 如何制作选项卡?

用 gui 制作一个 irc 机器人。在切换按钮切换上断开连接的困难