我已经在我的Linux机器上安装了C++库
pcapplusplus
,.a
文件已经放置在/usr/local/lib
中。我现在正在尝试使用target_link_libraries(${PROJECT_NAME} libCommon++.a libPacket++.a libPcap++.a)
在cmake中将我的项目与它链接起来。然而,它找不到Packet.h
,这是libPacket++.a
的一部分。我在这里做错了什么?我需要告诉cmake去哪里查找吗?cmake_minimum_required(VERSION 2.8.9)
project(networksniffer)
# The version number.
set (networksniffer_VERSION_MAJOR 1)
set (networksniffer_VERSION_MINOR 0)
set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/build)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR})
set(PROJECT_SOURCE_DIR ${CMAKE_SOURCE_DIR}/src)
# The following folder will be included
include_directories("/usr/local/include/pcapplusplus")
#add_executable(networksniffer ${SOURCES})
add_executable(networksniffer ${PROJECT_SOURCE_DIR}/networksniffer.cpp)
target_link_libraries(${PROJECT_NAME} libCommon++.a libPacket++.a libPcap++.a)
include_directories("/usr/local/include/pcapplusplus")
解决了找不到Packet.h
的问题。然而,现在项目已经构建完成,但我遇到了undefined reference to
pcpp::compute_checksum()`这个链接错误。 - netleap tomtarget_include_directories
,而不是普通的include_directories
。 - ComicSansMS