问题解决:waf编译链接缺少sodium库

张开发
2026/4/6 3:30:08 15 分钟阅读

分享文章

问题解决:waf编译链接缺少sodium库
在用waf命令编译生成ArduPilot固件时$ ./waf plane产生链接错误如Build failed - task in bin/arduplane failed (exit status 1): {task 136650222058432: cxxprogram AP_Arming_Plane.cpp.53.o,AP_ExternalControl_Plane.cpp.53.o,... tailsitter.cpp.53.o,takeoff.cpp.53.o,tiltrotor.cpp.53.o,tuning.cpp.53.o - arduplane}经查询是缺少库的链接通过$ ./waf plane-v命令进一步查找原因是项目中新增文件需要sodium库的支持其中sodium已经通过命令$sudoaptinstalllibsodium-dev进行安装解决办法执行命令设置链接参数把链接库加到参数中$exportLDFLAGS$LDFLAGS-lsodium然后执行命令进行配置和编译$ ./waf configure--boardsitl $ ./waf plane经过参数设置后配置和编译正常通过。长期的解决办法可以在~/.bashrc文件中增加export指令这样就每次登录后会自动运行参数设置。$sudogedit ~/.bashrc在文件最后增加$exportLDFLAGS$LDFLAGS-lsodium然后运行$source~/.bashrc或者重新打开命令窗口这样就可以顺利运行相关的waf命令了。

更多文章