2017-08-28 225 views
-6

我是初学者,涉及到C++和整体库(包括库),所以我花了我最后3天的很大一部分努力安装各种GUI库并试图使它们与Visual工作室,但这些尝试都没有成功。如何在C++中设置GUI

这涉及到必须包括文件和链接库的问题。至少对我来说,似乎非常繁琐和费时,无法将所有内容复制到Visual Studio的这些框中。

我需要帮助找出我在做什么错了,这里是我的尝试:

的Visual Studio 2017年 - 与Windows安装程序 gtkmm的库我下载所需的GTK +,并成功地安装它。 我打开我的项目的属性,转到包含并粘贴所需的路径。我转到链接器并继续粘贴这些路径。 接受,尝试用包含 - >一切都用红色下划线来粘贴hello世界程序。

这甚至不是实际的gtkmm实现。

现在我的问题是,我忘记了一个步骤,还是只是基本片段不起作用(我会免去你的发帖)。

当图书馆教程告诉我包含2或3个文件,而我的文件夹中有20个文件时,该怎么办?

此外,它是不知名的做法将库放到不同的驱动器?

很抱歉,如果我失去了声音,但是这几乎是我的感觉在这些教程..

编辑,以防万一,这是我指的是代码片段:

#include <gtk/gtk.h> 

int main(int argc, char *argv[]) { 

gtk_init(&argc, &argv); 

g_printf("GTK+ version: %d.%d.%d\n", gtk_major_version, 
    gtk_minor_version, gtk_micro_version); 
g_printf("Glib version: %d.%d.%d\n", glib_major_version, 
    glib_minor_version, glib_micro_version); 

return 0; 
} 

g_printf ,glib_major_version,glib_minor_version和glib_micro_version是红色下划线,但不能gtk_major_version

编辑:

谢谢你的建议和深入的教程,虽然这样的问题不适合stackoverflow。

你能告诉我如何包含大量的头文件和lib文件,当他们在许多文件夹?你是否需要手动访问所有文件夹并包含它们?

+0

我不明白。标题总体上讲述了GUI。除GTK之外还有其他GUI,如Qt,WxWidgets和Microsoft MFC Forms。你有什么问题? –

+0

如果你只需要一些可以工作并且是跨平台的,有据可查的和易于使用的东西;请查看[Qt](https://www.qt.io)。但这个问题对于SO来说确实有些偏离主题。 –

+0

也有用Visual C++编写的MFC应用程序。 –

回答

0

是的,你无疑错过了Visual Studio中的一个步骤。不,它可以安装在另一个驱动器上。

的总体思路是:

1)你的机器上的某个地方安装库。哪里并不重要。记下“lib”目录和“include”目录路径。

  • include目录包含头文件,它允许您的代码理解您尝试使用的代码的前向声明。
  • lib目录包含二进制文件(dll用于动态链接,lib用于静态链接)。有时会有不同的二进制文件用于发布/调试。我会链接调试库并在发布代码时担心发布代码
  • 请注意,有时他们希望您自己编译代码并创建二进制文件。它们将包含编译指令。创建二进制文件后,您可以返回步骤1并重复这些步骤。这是因为他们要么不想为您的平台预编译二进制文件,要么他们的项目理念就是自己做。

2)在Visual Studio中,你必须告诉编译器(单独)新的附加包含和库目录在哪里。 2017年这是...

  • include目录:项目>(名称)属性> C/C++>常规>附加包含目录
  • 库目录:项目>(名称)属性>链接>常规>其他库目录

3)现在自己包含库(二进制文件)。 2017年这是...

  • 二进制库:项目>(名称)属性>链接>输入>附加依赖

他们应该为您提供的二进制文件的列表中的项目,包括是否有是外部依赖项,或者他们已经将项目分为多个模块库。

如果你想用C/C++进行编程,这是一个你将要经历一遍又一遍的过程。它有点神秘,但一旦你把它弄倒,它不会让你感到惊讶。

编辑:

哦,顺便说一句,人提到的Qt。这个框架与Visual Studio有一点不同。它涉及到自己设置依赖关系,因为它们包含语言扩展和用于创建GUI的工具。出于这个原因,有一个工具(这是相当不错的)从模板创建Qt项目。这为您设置了所有编译器步骤,包含和链接库。

在我看来,它可能是Windows上C/C++的GUI库最好也是最成熟的,它也是跨平台的。

+0

非常感谢您的深入解释。我最初也是遵循了这些步骤,但是好像我必须单独选择所有的头文件和lib文件,因为该文件夹对编译器不可见。 有没有解决方法?我会再次尝试Qt,因为如你所说,它是免费的,但我仍然想知道如何处理包括gtkmm在内的“巨大”库,其中包含大量带有标题和库的文件夹。 – mxOx2kL

+0

@ mxOx2kL不必在项目设置中包含每个单独的文件。包含目录/包含库设置的错误或误解可能是罪魁祸首。此外,如果在主“include”目录内有子文件夹,则需要在代码中的头文件#include伪指令中包含该文件。示例可能是图形SFML库,其中包含一个路径,使其“include \ SFML \ ”。如果将“包含”路径放入Visual Studio设置中,则cpp文件中的标头#include指令看起来像#include 。 – Josh