c/c++语言开发共享在Ubuntu上编译和链接GTK 3和C项目

我相信这不是一个重复的问题,在发布此问题之前,我已经看到了所有问题/答案。 我想我在这里有不同的情况。

我使用Ubuntu 12.04并下载了GTK 2和3 。 我从GNOME的网站上复制了一个简单的GTK源代码。 但是当我在终端中使用此命令时:

gcc `pkg-config --cflags --libs gtk+-3.0` hello.c -o hello 

我明白了:

 hello.c:(.text+0x17): undefined reference to `gtk_init' hello.c:(.text+0x23): undefined reference to `gtk_window_new' hello.c:(.text+0x47): undefined reference to `gtk_main_quit' hello.c:(.text+0x5b): undefined reference to `g_signal_connect_data' hello.c:(.text+0x67): undefined reference to `gtk_widget_show' hello.c:(.text+0x6c): undefined reference to `gtk_main' 

这是我的代码:

 #include  int main (int argc, char *argv[]) { GtkWidget *window; gtk_init (&argc, &argv); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL); gtk_widget_show (window); gtk_main (); return 0; } 

我不确定是否出现错误,因为我有两个版本的GTK +或者什么。 我是Ubuntu / Linux应用程序开发的新手。

    您应该使用源代码库中的源文件编译为gcc hello.c $(pkg-config --cflags --libs gtk+-3.0) -o hello ,原因是链接器的行为,即它不链接库,除非在编译之前可以看到该库的符号。
    希望这可以帮助!

    您还可以将gtk库直接包含在项目中:

    需要了解更多c/c++开发分享在Ubuntu上编译和链接GTK 3和C项目,也可以关注C/ C++技术分享栏目—计算机技术网(www.ctvol.com)!

      以上就是c/c++开发分享在Ubuntu上编译和链接GTK 3和C项目相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/980455.html

      (0)
      上一篇 2021年12月13日
      下一篇 2021年12月13日

      精彩推荐