2017-09-24 103 views
-1

对于我的任务,我需要使用libpcap运行C/C++代码。我使用CLion 1.2。当我尝试运行测试代码,我得到的消息PCAP在CLion中不起作用

未定义的引用“pcap_open_offline”

未定义的引用“pcap_next”

下面是代码

#include <stdio.h> 
#include <pcap/pcap.h> 

const u_char *packet; 


int main() { 


    char errbuf[PCAP_ERRBUF_SIZE]; 
    pcap_t *handle = pcap_open_offline("/home/alex/Downloads/priklad.pcap", errbuf); 

    struct pcap_pkthdr packet_header; 
    packet = pcap_next(handle, &packet_header); 


    return 0; 
} 

我试着像讨论的here那样链接库,但它没有帮助。我加载库与命令

sudo易于得到安装的libpcap-dev的

当前CMakeList.txt:

cmake_minimum_required(VERSION 3.3) 
project(PKS1) 

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") 

SET(GCC_COVERAGE_LINK_FLAGS "-lpcap") 

SET(CMAKE_MODULE_PATH "/home/alex/projects/ClionProjects/PKS1/") 


include(FindPCAP) 
find_package(PCAP) 

set(SOURCE_FILES main.c) 
add_executable(PKS1 ${SOURCE_FILES}) 
target_link_libraries(PKS1 ${usr/include}) 

我的问题是,我究竟做错了什么?图书馆在哪里?我如何找到它并正确链接它,而无需每次使用gcc进行编译?

回答

0

你永远不会链接到libpca

更改行:

target_link_libraries(PKS1 ${usr/include}) 

target_link_libraries(PKS1 ${PCAP_LIBRARY}) 

您可能还希望更改为:

find_package(PCAP REQUIRED) 

为了的cmake运行,而不是在错误出在编译步骤中如果libpcap找不到。