在WSL上修复pthread_create引用错误
- 论坛
- 在WSL上修复pthread_create引用错误
11 浏览
在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函数。
有人知道是什么导致了这个编译错误吗?