【问题标题】:gcc generate .o file instead of executablegcc 生成 .o 文件而不是可执行文件
【发布时间】:2016-10-13 17:18:18
【问题描述】:

我正在尝试调试爪邮件通知插件,我有这样的代码:

#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 选项的全部意义所在。它告诉它只创建一个目标文件而不是链接到可执行文件。如果您不希望这样,请不要使用该选项。

标签: c ubuntu gcc


【解决方案1】:

从命令行中删除-c 选项(生成目标文件而不是可执行文件)。

来自man gcc

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

例子:

要生成一个目标文件(`.o' 文件):

gcc -c test.c 

生成可执行文件:

gcc test.c -o test

(如果您省略-o test,它会生成a.out 作为约定的可执行文件)。

【讨论】:

  • 为什么你不举一个像gcc -c file2alias.c这样的例子 * uf我正在寻找生成.o而不是可执行文件的方法,对不起
  • @Sérgio 因为问题不是那个!无论如何,我现在添加了几个示例。
  • 现在,我可以改变我的投票了 :),谢谢
猜你喜欢
  • 1970-01-01
  • 2011-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多