c++ - 编译gtkmm的问题

标签 c++ eclipse gtkmm

操作系统:Fedora 14

编译器:g++ (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)

我通过 yum 从存储库安装了 gtkmm24-devel。为了确保安装按计划进行,我决定尝试页面上的一个示例。

#include <gtkmm.h>

int main(int argc, char *argv[]) {
    Gtk::Main kit(argc, argv);
    Gtk::Window window;
    Gtk::Main::run(window);
    return 0;
}

我运行了这个例子,然后,嘿!它说找不到gtkmm.h,没问题,我只是忘记链接库了。我通过 Eclipse 将/usr/include/gtkmm-2.4 添加到我的库搜索中。没有bueno,g++还是找不到!

fatal error: gtkmm.h: No such file or directory

然后我尝试使用 #include <gtkmm-2.4/gtkmm.h> 包含 gtkmm重新编译,又报错! :(

/usr/include/gtkmm-2.4/gtkmm.h:87:20: fatal error: glibmm.h: No such file or directory

感谢阅读。

最佳答案

简答

将“pkg-config gtkmm-2.4 --cflags”的输出用于包含路径,将“pkg-config gtkmm-2.4 --libs”的输出用于要链接的库。

长答案

It said it couldn't find gtkmm.h, no problem, I just forgot to link the library.

构建 C/C++ 程序分两个单独的步骤完成。首先编译源文件,输出目标文件;然后将目标文件链接在一起。您得到的错误来自编译步骤。

在 Linux 上,大多数库都带有 pkg​​config 文件,以便其他程序更容易使用这些库。 gtkmm 还带有自己的 pkgconfig 文件。

您正在尝试手动指定/usr/include/gtkmm-2.4 作为包含路径;这是错误的。相反,使用 pkgconfig 的输出来确定头文件的位置。要获取 gtkmm 所需的所有包含目录,请使用以下命令:

pkg-config gtkmm-2.4 --cflags

对于链接,使用以下 pkgconfig 命令获取您需要链接的库:

pkg-config gtkmm-2.4 --libs

你可以在命令行直接调用g++进行测试。

g++ myfirstprogram.cpp -o myfirstprogram `pkg-config gtkmm-2.4 --cflags --libs`

有关详细信息,请参阅 gtkmm 文档:http://library.gnome.org/devel/gtkmm-tutorial/unstable/sec-basics-simple-example.html.en

关于c++ - 编译gtkmm的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4609705/

相关文章:

c++ - OpenCV - API 位置不是文档吗?

Android:在 Eclipse 构建的外部 jar 中找不到类,但在 Netbeans 构建的外部 jar 中找到类

eclipse - 排除 Eclipse IDE 中与 JUnit 4 的集成测试

java - 如何使用推送机器人在我现有的 Android 应用程序中添加推送通知

c++ - 在 Eclipse 中为 C++ 设置 GTKmm

css - 在 gtkmm 3.10.1 中使用 CSS 设计 Gtk::Box 的问题

c++ - std::for_each 似乎正在清理 std::string

c++ - HP-UX Itanium 比较和交换

c++ - Gtk/Gtkmm 动态滚动

c++ - 'too few arguments to function ' char * strncpy(char *,const char *,size_t)'是什么意思?