gcc生成.o文件而不是可执行文件

2023-11-27

我正在尝试调试claws-mail通知插件,我有这样的代码:

#include "notification_indicator.h"
#include "notification_prefs.h"
#include "notification_core.h"

#include "folder.h"
#include "common/utils.h"

#include <messaging-menu.h>
#include <unity.h>

#define CLAWS_DESKTOP_FILE "claws-mail.desktop"

#include <stdio.h>

void main(void)
{
  GList *cur_mb;
  gint total_message_count;


  total_message_count = 0;
  /* check accounts for new/unread counts */
  for(cur_mb = folder_get_list(); cur_mb; cur_mb = cur_mb->next) {
    Folder *folder = cur_mb->data;
    NotificationMsgCount count;

    if(!folder->name) {
      printf("Notification plugin: Warning: Ignoring unnamed mailbox in indicator applet\n");
      continue;
    }
    gchar *id = folder->name;
    notification_core_get_msg_count_of_foldername(folder->name, &count);
    printf("%s: %d\n", folder->name, count.unread_msgs);
  }
}

我用这个命令编译它:

gcc  -I/home/kuba/Pobrane/claws-mail-3.13.2/src/
     -I/usr/include/gtk-2.0/
     -I/usr/include/cairo/
     -I/usr/include/pango-1.0
     -I/usr/lib/i386-linux-gnu/gtk-2.0/include/
     -I/usr/include/gdk-pixbuf-2.0/
     -I/usr/include/atk-1.0/
     -I/home/kuba/Pobrane/claws-mail-3.13.2/src/common
     -I/home/kuba/Pobrane/claws-mail-3.13.2/src/gtk
     -I/usr/include/messaging-menu/
     -I/usr/include/unity/unity/
     -I/usr/include/dee-1.0/
     -I/usr/include/libdbusmenu-glib-0.4/
     -c `pkg-config --cflags glib-2.0` test.c

但是 gcc 创建目标文件 test.o 而不是 a.out 我如何创建可执行文件?我在 Xubuntu 上运行这个。


去除-c来自命令行的选项(生成目标文件而不是可执行文件)。

From man gcc:

-c
编译或汇编源文件,但不链接。链接阶段根本就没有完成。最终输出的形式为 每个源文件都有一个目标文件。

例子:

生成目标文件(“.o”文件):

gcc -c test.c 

要生成可执行文件:

gcc test.c -o test

(如果您省略-o test,它会生成a.out按照惯例作为可执行文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gcc生成.o文件而不是可执行文件 的相关文章

随机推荐