我有一个程序,我想在中使用pcap\u create(),但在使用此API之前,我想确保此API存在。我知道在libpcap的1.0版中存在此API,但是如何在编译时检查libpcap的版本
例如,我想要如下所示:
#如果PCAP主要版本>;=1.
pcap_创建(。。。
#否则
pcap\u打开\u现场(。。。
#恩迪夫
实际上,您并不关心库的版本,您关心的是符号是否存在。因此,这是检查符号是否存在的作业:
#这假设PCAP_INCLUDE_DIRS以某种方式进行了适当设置,可能通过以下方式:
#
#查找路径(PCAP包括“PCAP/PCAP.h”)
#
#或者你的CMakeLists.txt中的其他内容
包括(检查符号是否存在)
集合(CMAKE“必需”包括“${PCAP”包括“{U目录”}”)
检查“U符号”是否存在(pcap“U创建”pcap/pcap.h“拥有”pcap“U创建)
添加可执行文件(main.cpp)
目标“编译”定义(主私有“HAVE”PCAP“u CREATE=$<;BOOL:${HAVE”PCAP“u CREATE}>;)
如果PCAP\u CREATE函数存在或不存在,这将在main.cpp到1或0中定义HAVE\u PCAP\u CREATE。然后在代码中编写:
#如果已创建PCAP#
pcap_创建(…);
#否则
pcap开放现场(…);
#恩迪夫