在WSL上修复pthread_create引用错误

11 浏览
0 Comments

在WSL上修复pthread_create引用错误

我有一个C程序,在多台机器上工作,虽然它在我的MacBook上可以正确编译,但我无法在运行Ubuntu 18.04的Windows子系统上使用gcc编译该程序。

该程序生成多个线程,当我尝试在Windows子系统上编译它时,出现错误undefined reference to `pthread_create

其他一些问题,比如这个这个这个,建议使用-lpthread作为编译器标志来解决这个问题,但我已经这样做了,并且在OSX上编译得很好,所以我怀疑问题可能与我的WSL配置有关。

我的Makefile是:

CC = gcc

CCOPTS = -Wall -c -g -ggdb

LINKOPTS = -Wall -g -ggdb -lpthread

all: calc

calc: calc.o smp3_tests.o testrunner.o

$(CC) $(LINKOPTS) -o $@ $^

calc.o: calc.c calc.h

$(CC) $(CCOPTS) -o $@ $<

我使用#include 包含pthread头文件,并使用pthread_create(&multiplierThread, NULL, multiplier, arg)调用pthread_create函数。

有人知道是什么导致了这个编译错误吗?

0