使用Pylon C SDK编译C代码遇undefined reference错误求解决
解决Pylon C SDK编译链接
undefined reference错误 你的问题属于链接阶段缺失Pylon库依赖,头文件路径已经通过-I/opt/pylon/include解决,但链接器ld找不到Pylon函数的实现库,按以下步骤修复:
1. 定位Pylon库文件位置
Pylon SDK的库文件通常位于/opt/pylon/lib或/opt/pylon/lib64目录,用以下命令确认:
find /opt/pylon -name "libPylonC*.so"
2. 修改编译命令,添加库路径与链接参数
在编译命令中加入:
-L<库目录>:指定Pylon库的路径-lPylonC:链接Pylon C核心库(对应libPylonC.so,规则是去掉lib前缀和.so后缀)
同时注意:-o参数后应该是可执行文件名称(而非.o目标文件),如果要生成目标文件需加-c参数。修改后的完整命令示例:
gcc -I/opt/pylon/include -L/opt/pylon/lib -Wall -pthread -o initialization initialization.c -lpigpio -lrt -lPylonC
如果GenApi相关函数仍报错,可尝试添加-lGenApi(对应libGenApi.so):
gcc -I/opt/pylon/include -L/opt/pylon/lib -Wall -pthread -o initialization initialization.c -lpigpio -lrt -lPylonC -lGenApi
3. 解决运行时库加载问题
如果编译通过但运行时提示找不到库,需设置库路径环境变量:
export LD_LIBRARY_PATH=/opt/pylon/lib:$LD_LIBRARY_PATH
或者永久生效:
- 创建文件
/etc/ld.so.conf.d/pylon.conf,写入/opt/pylon/lib - 执行
ldconfig更新系统库缓存
内容的提问来源于stack exchange,提问作者Brassard1984
相关产品推荐
相关产品推荐

