编译TTL 232R库示例:Linux下main.c出现未定义引用链接错误
解决FTD2xx库编译时的未定义引用错误
这些undefined reference错误是链接阶段未关联FTDI的ftd2xx库导致的——头文件ftd2xx.h只提供了函数声明,链接器需要找到这些函数的二进制实现(库文件)才能生成可执行文件。
解决步骤:
- 确认ftd2xx库文件位置:
解压或安装FTDI驱动后,会生成libftd2xx.so(动态库)或libftd2xx.a(静态库),路径通常是/usr/local/lib或你存放库的自定义目录。 - 修改编译命令:
- 使用动态库编译:
若库在系统默认搜索路径(如/usr/local/lib),直接执行:
若库在自定义路径(比如gcc main.c -o main -lftd2xx~/ftdi/lib),需用-L指定库路径:gcc main.c -o main -L~/ftdi/lib -lftd2xx - 使用静态库编译:
直接指定静态库文件的完整路径:gcc main.c -o main ~/ftdi/lib/libftd2xx.a
- 使用动态库编译:
- 动态库运行时配置(使用动态库时):
运行程序前需让系统识别动态库:- 临时生效:
export LD_LIBRARY_PATH=/path/to/lib:$LD_LIBRARY_PATH - 永久生效:
编辑/etc/ld.so.conf添加库路径,执行sudo ldconfig更新配置
- 临时生效:
内容的提问来源于stack exchange,提问作者ArunS
相关产品推荐
相关产品推荐

