树莓派编译AWS IoT Secure Tunneling LocalProxy遇链接错误求助
解决树莓派编译AWS IoT Localproxy时的
__atomic_fetch_add_8链接错误 这个错误是因为树莓派ARM架构下,静态链接protobuf-lite时缺少原子操作库的引用,以下是可行的解决方法:
修改项目CMake配置
找到项目根目录的CMakeLists.txt,添加原子库到链接选项中:- 可以在文件开头添加全局链接参数:
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -latomic") - 或者在
target_link_libraries指令中直接添加atomic,比如:target_link_libraries(localproxytest ${LIBS} atomic)
修改后重新执行
cmake ..和make即可。- 可以在文件开头添加全局链接参数:
编译时临时指定链接参数
如果不想修改CMake文件,直接在编译时传递额外链接参数:make EXTRA_LDFLAGS="-latomic"确保protobuf编译时已支持原子操作
如果你是手动编译安装的protobuf,需要确认编译protobuf时也添加了-latomic参数。如果是通过包管理器安装的,建议重新从源码编译protobuf并指定链接选项,避免依赖缺失。
已有开发者成功在树莓派3和4上完成该项目的编译,核心就是解决原子库的链接依赖问题。
内容的提问来源于stack exchange,提问作者Keith
相关产品推荐
相关产品推荐

