gcc: -pthread: 没有那个文件或目录

use*_*665 3 linux c gtk

尝试在终端中编译以下代码我得到了

gcc: -pthread: No such file or directory,

这个错误是什么意思以及如何消除它?

文件名: window.c

代码:

#include <gtk/gtk.h>

int main(int argc, char *argv[]) {

  GtkWidget *window;

  gtk_init(&argc, &argv);

  window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 
  gtk_widget_show(window);

  gtk_main();
  return 0;

}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下参数编译它:-

gcc -Wall -g window.c -o window `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`
Run Code Online (Sandbox Code Playgroud)

Dav*_*rtz 5

这很可能意味着您的系统没有安装线程库的开发部分。您可以-pthread使用以下命令找出您的平台上线程标志的作用:

gcc -dumpspecs | grep "%{pthread"

我明白了:

%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}
%{pthread:-lpthread}    %{shared:-lc}    %{!shared:%{mieee-fp:-lieee} %{profile:-lc_p}%{!profile:-lc}}
Run Code Online (Sandbox Code Playgroud)

这意味着-pthread在我的系统上添加-D_REENTRANT-lpthread. 所以丢失的文件将是libpthread.sometihing.