Windows10下VS2019编译树莓派Raspbian多线程代码报pthread_create未定义求助
这个报错是链接阶段未关联pthread线程库导致的,你之前把参数加在C/C++编译附加选项的位置错误,该参数需要传给链接器才会生效。
VS2019 跨平台Linux项目配置步骤
- 右键项目名称,选择「属性」打开配置页
- 左侧菜单展开「配置属性」,找到「链接器」分类,点击「命令行」选项
- 在右侧「附加选项」输入框中添加
-pthread - 点击「应用」保存配置后重新编译即可
注意事项
- 配置前先确认属性页顶部的「平台」选项和你要编译的目标平台匹配:如果是编译部署到树莓派的版本,要选择ARM/ARM64,不要只修改了x64本地编译的配置
- 优先使用
-pthread而非-lpthread,前者会自动开启线程安全编译标识,适配性更好 - 不需要额外安装NuGet的pthreads相关包,树莓派默认系统已经自带pthread库,只要链接时加上参数即可
以上配置同样适用于std::thread的场景,C++标准库的线程实现底层也是依赖pthread库,只要加了链接参数即可正常编译。
内容的提问来源于stack exchange,提问作者TDG
相关产品推荐
相关产品推荐

