在使用Xilinx PCIE demo时,尝试基于xapp1022示例代码编译Linux驱动,结果遇到报错——提示找不到pci_find_device函数。官方说明文档指出该驱动适用于Fedora系统,而当前环境却是CentOS 7。驱动中唯一与PCI相关的头文件只有linux/pci.h,查看后发现其中确实没有该函数的声明。
最初以为缺少某些库文件,搜索后安装了pciutils,但重新编译时依然抛出相同的错误。进一步检查头文件,发现多了一个pci文件夹,里面有pci.h,其中声明了大量函数,可依然找不到pci_find_device。通过网络查询得知,较新版本的Linux内核已经改用pci_get_device替代旧函数。将函数名替换后,编译顺利通过。
解决方案参考:

