Не собирается проект в QT Creator при использовании libpcap

Пытаюсь скомпилировать проект в QT Creator. В проекте используется библиотечка libpcap. Перед этим установил её выполнив команду:

sudo apt install libpcap-dev

Тем не менее, когда начинаю компилировать, QT Creator всячески ругается:

введите сюда описание изображения

CMakeLists.txt:

cmake_minimum_required(VERSION 3.14)
project(spiderweb)

message (STATUS "CMAKE_INSTALL_PREFIX is ${CMAKE_INSTALL_PREFIX}")

set(CMAKE_CXX_STANDARD 14)

set(SPIDERWEB_SOURCE_DIR ${SPIDERWEB_SOURCE_DIR} "${CMAKE_SOURCE_DIR}")
set(SPIDERWEB_SUBMODULES_SOURCE_DIR ${SPIDERWEB_SUBMODULES_SOURCE_DIR} "${CMAKE_SOURCE_DIR}/submodules")
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")

add_subdirectory(resources)
add_subdirectory(osModule)
add_subdirectory(wirelessModule)
add_subdirectory(comModule)
add_subdirectory(submodules/radiotap)
add_subdirectory(submodules/apimodulesspiderweb)
add_subdirectory(submodules/transportmodulestsp)
add_subdirectory(submodules/cyphermodulesblowfish)
add_subdirectory(submodules/coremodulesclient)
add_subdirectory(submodules/Common/SpiderWeb)

add_executable(${PROJECT_NAME} spiderweb.cpp
                               spiderweb.h
                               main.cpp
                               submodules/interface/baseInterface.cpp
                               submodules/interface/coreModulesInterface.cpp
                               submodules/interface/baseInterface.h
                               submodules/interface/coreModulesInterface.h
)

set_property(TARGET ${PROJECT_NAME} PROPERTY AUTOMOC ON)

set_target_properties(${PROJECT_NAME}
    PROPERTIES
    #ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    #LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib"
    RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
)

target_link_libraries(${PROJECT_NAME} resources
                                      osModule
                                      wirelessModule
                                      radiotap
                                      comModule
                                      spiderwebstructs
)

find_package(Boost COMPONENTS REQUIRED)
target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})

find_package(PCAP REQUIRED)
target_link_libraries(${PROJECT_NAME} ${PCAP_LIBRARY})

find_package(LibNL REQUIRED)
target_link_libraries(${PROJECT_NAME} ${MOD_LIBS} ${LibNL_LIBRARY}
                                                  ${LibNL_ROUTE_LIBRARY}
                                                  ${LibNL_GENL_LIBRARY}
)

find_package(fmt REQUIRED)
target_link_libraries(${PROJECT_NAME} fmt)

find_package(spdlog REQUIRED)
target_link_libraries(${PROJECT_NAME} spdlog::spdlog)

find_package(Qt5 COMPONENTS Core Widgets REQUIRED)
target_link_libraries(${PROJECT_NAME} Qt5::Core Qt5::Widgets)

add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
    ${SPIDERWEB_SOURCE_DIR}/external/oui.txt
    ${CMAKE_BINARY_DIR}/bin/oui.txt
)

add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E copy
    ${CMAKE_BINARY_DIR}/submodules/radiotap/libradiotap.so
    ${CMAKE_BINARY_DIR}/bin/libradiotap.so
)

FindPCAP.cmake

find_path(PCAP_ROOT_DIR
    NAMES include/pcap.h
)

find_path(PCAP_INCLUDE_DIR
    NAMES pcap.h
    HINTS ${PCAP_ROOT_DIR}/include
)

find_library(PCAP_LIBRARY
    NAMES pcap
    HINTS ${PCAP_ROOT_DIR}/lib
)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PCAP DEFAULT_MSG
    PCAP_LIBRARY
    PCAP_INCLUDE_DIR
)

include(CheckCSourceCompiles)
set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY})
check_c_source_compiles("int main() { return 0; }" PCAP_LINKS_SOLO)
set(CMAKE_REQUIRED_LIBRARIES)

# check if linking against libpcap also needs to link against a thread library
if (NOT PCAP_LINKS_SOLO)
    find_package(Threads)
    if (THREADS_FOUND)
        set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
        check_c_source_compiles("int main() { return 0; }" PCAP_NEEDS_THREADS)
        set(CMAKE_REQUIRED_LIBRARIES)
    endif ()
    if (THREADS_FOUND AND PCAP_NEEDS_THREADS)
        set(_tmp ${PCAP_LIBRARY} ${CMAKE_THREAD_LIBS_INIT})
        list(REMOVE_DUPLICATES _tmp)
        set(PCAP_LIBRARY ${_tmp}
            CACHE STRING "Libraries needed to link against libpcap" FORCE)
    else ()
        message(FATAL_ERROR "Couldn't determine how to link against libpcap")
    endif ()
endif ()

include(CheckFunctionExists)
set(CMAKE_REQUIRED_LIBRARIES ${PCAP_LIBRARY})
check_function_exists(pcap_get_pfring_id HAVE_PF_RING)
check_function_exists(pcap_dump_open_append HAVE_PCAP_DUMP_OPEN_APPEND)
set(CMAKE_REQUIRED_LIBRARIES)

mark_as_advanced(
    PCAP_ROOT_DIR
    PCAP_INCLUDE_DIR
    PCAP_LIBRARY
)

Ответы (1 шт):

Автор решения: Sergey Tatarincev

библиотеку к проекту подключать надо.

хотелось бы взглянуть на ваш .pro и увидеть в нем что-то типа

LIBS += /usr/lib64/libpcap.so
→ Ссылка