PCAP在CLion中不起作用

时间:2017-09-24 14:18:32

标签: c pcap clion

对于我的任务,我需要使用libpcap运行C / C ++代码。我正在使用CLion 1.2。当我尝试运行测试代码时,我收到了消息

对'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 apt-get install 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编译的情况下找到它并正确链接它?

1 个答案:

答案 0 :(得分:0)

您永远不会链接到ffmpeg

更改行:

libpca

target_link_libraries(PKS1 ${usr/include})

您可能还想更改为:

target_link_libraries(PKS1 ${PCAP_LIBRARY})

为了在find_package(PCAP REQUIRED) 运行期间出错,而不是在编译步骤中如果找不到cmake则错误。