在 Debian 中 #include <threads.h> 之后,GCC 在 C11 模式下未定义对 thrd_create() 的引用
GCC undefined reference to thrd_create() in C11 mode after #include <threads.h> in Debian
我正在尝试编译一个我已经能够在其他几个 Debian 环境中编译的程序,使用 C11 <threads.h>
库在相对较新的 Debian Bullseye 上使用“gcc (Debian 10.2.1-6) 10.2.1 20210110
" 安装
使用命令
gcc -o <progname> -O3 -Wall -Wextra -std=c11 -lpthread <sourcefile>
并且我收到一串链接器错误,形式为
undefined reference to 'mtx_unlock'
以及 mtx_lock
mtx_init
thrd_create
等
但我没有收到 threads.h
文件不存在的错误消息。我尝试从编译命令中删除 -lpthread
参数,但这没有任何改变。
出了什么问题?
正确的命令行参数似乎是 -pthread
而没有 l
。
我正在尝试编译一个我已经能够在其他几个 Debian 环境中编译的程序,使用 C11 <threads.h>
库在相对较新的 Debian Bullseye 上使用“gcc (Debian 10.2.1-6) 10.2.1 20210110
" 安装
使用命令
gcc -o <progname> -O3 -Wall -Wextra -std=c11 -lpthread <sourcefile>
并且我收到一串链接器错误,形式为
undefined reference to 'mtx_unlock'
以及 mtx_lock
mtx_init
thrd_create
等
但我没有收到 threads.h
文件不存在的错误消息。我尝试从编译命令中删除 -lpthread
参数,但这没有任何改变。
出了什么问题?
正确的命令行参数似乎是 -pthread
而没有 l
。