【问题标题】:Make GUI in C++ by NanaNana 用 C++ 制作 GUI
【发布时间】: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();
}

提前致谢。

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

【问题讨论】:

  • 我安装了mingw,但找不到open_distro_window.bat
  • 运行g++ --version 的输出是什么?您的 MinGW 版本可能太旧了。
  • @kirbyfan64sos。错误说 4.8.1 这使您正确。至少用4.8.2会更好
  • @qPCR4vir 有区别吗?毕竟,它们是次要版本。

标签: c++ user-interface build g++ nana


【解决方案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 来解决它。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-18
  • 2010-12-09
  • 1970-01-01
  • 2013-11-29
  • 1970-01-01
  • 2013-02-20
相关资源
最近更新 更多