macOS下C23多线程代码编译遇linker command failed exit code 1错误求助
解决macOS下C23编译pthread程序的链接错误
错误原因
你遇到的链接错误(clang: error: linker command failed with exit code 1)和未定义符号提示,核心原因是编译时未链接pthread库。macOS的Clang编译器不会自动关联pthread库,必须显式指定链接参数;同时你使用C23标准开发,也需要在编译命令中明确指定标准版本。
解决方案
使用以下命令编译你的代码:
clang -std=c23 -o sum_program main.c -lpthread
参数说明:
-std=c23:指定使用C23标准编译代码-o sum_program:指定生成的可执行文件名为sum_program(可自定义)-lpthread:告诉链接器链接pthread线程库,解决_runner符号未找到的问题
额外注意事项
- 运行程序时必须传入一个整数参数,例如:
否则./sum_program 100argv[1]为空指针,atoi函数会导致未定义行为。 - 你的代码中
runner函数的声明与定义是匹配的,无需修改代码逻辑。
内容的提问来源于stack exchange,提问作者Dawid Janas
相关产品推荐
相关产品推荐

