如何在 Ubuntu 中使用 GTK+ 开发库?

MrK*_*ish 5 programming gtk gcc c++ gtk3

我已经在 Windows 上编程了大约一年半,我刚刚开始习惯该平台上的工作方式,但现在我对 Linux 上的开发很感兴趣,我一直在度过一段艰难的时光习惯了工作流程,缺乏 IDE,以及使用 GCC 进行命令行编译。顺便说一句,我正在运行Xubuntu 13.10 64位..

为了试水,我做了很多人做的事情,并编写了一个快速的 C++ 'hello world' 程序。

#include <iostream>

int main()
{
    std::cout << "Hello!\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的第一个问题是;当我尝试使用 GCC 编译该程序时,它似乎出现编译错误,但是当我使用 G++ 编译器时它编译得很好:

gcc hello.cpp -o hello
/tmp/ccbmUmzf.o: In function `main':
hello.cpp:(.text+0xa): undefined reference to `std::cout'
hello.cpp:(.text+0xf): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
/tmp/ccbmUmzf.o: In function `__static_initialization_and_destruction_0(int, int)':
hello.cpp:(.text+0x3d): undefined reference to `std::ios_base::Init::Init()'
hello.cpp:(.text+0x4c): undefined reference to `std::ios_base::Init::~Init()'
collect2: error: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

这里发生了什么,是 GCC 无法识别我的代码是 C++ 还是什么?

我的第二个问题是尝试使用库:我的印象是 GTK+3.0 开发库包含在 (X)ubuntu 中,但是当我尝试按照此处的简单教程进行操作时,我从 G++ 收到以下错误:

g++ hello.cpp -o hello
hello.cpp:1:21: fatal error: gtk/gtk.h: No such file or directory
 #include <gtk/gtk.h>
                     ^
compilation terminated.
Run Code Online (Sandbox Code Playgroud)

然后,我将其解释为没有安装 GTK+3.0 的库。所以我检查了 apt-get,但我并没有真正看到任何看起来像我需要的东西。我是否必须构建 GTK +3.0 来自源代码,或者我需要某处是否有一些 PPA?

这些问题真的让我很沮丧.. 我知道很多人都对 GNU/Linux 开发工作流程发誓,但作为一个习惯于在 Visual Studio 中工作的人,我发现这个过程有点不透明和不直观。现在我在 Xubuntu 上使用 Mousepad 来编辑我的代码,虽然它有颜色编码的语法,但除此之外它似乎做的很少。我知道最终我将不得不处理多个文件并创建生成文件,此时,我很害怕!

非常欢迎您可以为新手程序员和整个 Linux/GNU 菜鸟提供任何帮助!

Nic*_*hev 5

建议

首先,您不必满足于没有 IDE。安装 Eclipse,它可以在 Ubuntu 软件中心获得。您还想为 Eclipse 安装 CDT,它为您提供 C/C++ 支持。其次,我非常建议您关注 C++ 和 Qt,而不是 C 和 GTK。Qt 是一个出色的跨平台框架,它使用 C++ 和 QML(一种类似 JavaScript 的 UI 语言),而 Ubuntu 正越来越多地将 Qt 用于他们未来的桌面和移动开发。这些工具不仅可以让您为 Ubuntu 桌面创建漂亮的应用程序,还可以为 Android、Windows、Mac、黑莓和其他操作系统创建漂亮的应用程序。一个优秀的 Qt 特定 IDE 是 QtCreator,也可在 Ubuntu 软件中心获得,您应该在一些 Qt 教程中查看它。

回答

为了直接回答您的问题,尽管我强烈建议您执行我上面概述的操作,但您可能需要使用的库的 -dev 版本。对于 GTK 3,您可能必须:

sudo apt-get install libgtk-3-dev
Run Code Online (Sandbox Code Playgroud)

这应该为您提供所有 GTK 3 标头。