Hyper-V Linux虚拟机下Qt项目编译提示找不到已存在的lftd2xx库
Qt交叉编译树莓派项目
cannot find -lftd2xx错误解决方案 以下是按优先级排序的排查修复步骤:
- 确认库架构匹配
交叉编译场景下架构不匹配是最常见的错误原因:必须使用和树莓派架构一致的libftd2xx库,不能使用Hyper-V虚拟机本身的x86/x64架构库。可执行命令file libftd2xx.so验证库架构,输出需要匹配树莓派的架构(32位树莓派对应ARMv7,64位树莓派对应ARM aarch64)。 - 检查库文件命名规则
Linux下-lftd2xx链接参数会默认查找名为libftd2xx.so的文件,如果你的库文件带版本后缀(如libftd2xx.so.1.4.27),需要在库所在目录执行软链接命令:ln -s libftd2xx.so.实际版本号 libftd2xx.so - 验证.pro配置路径有效性
- 可以在.pro的unix分支下添加调试打印,确认配置分支被正确触发:
编译时查看控制台是否有对应日志输出,确认unix:!macx: { message(Using unix ftd2xx config, lib path: $$PWD) LIBS += -L$$PWD/./ -lftd2xx }$$PWD路径正确指向库文件所在目录。
2. 交叉编译场景下需要确认你使用的树莓派交叉编译器的sysroot中包含该库路径,或者直接将libftd2xx.so拷贝到交叉编译器的默认lib搜索目录中。 - 检查库文件权限
确保库文件有可读权限,可执行命令修复:chmod 644 你的库文件路径/libftd2xx.so*
如果以上步骤都排查完成后仍报错,可以在qmake编译参数中添加-v,查看链接阶段的详细搜索路径,确认你添加的库目录是否被正确传入链接器参数。
内容的提问来源于stack exchange,提问作者Danylo
相关产品推荐
相关产品推荐

