#header #compile #build #github #env-var #pcap-plus-plus #com-seladb-pcap-plus-plus

sys pcapplusplus-sys

编译PcapPlusPlus并使其库和头文件可用。也请参阅 https://github.com/seladb/PcapPlusPlus

1 个不稳定版本

0.1.0 2024年5月26日

#68#环境变量


tcp-stream-capture 中使用

无许可证

1.5MB
32K SLoC

C++ 28K SLoC // 0.0% comments C 3K SLoC // 0.2% comments Python 1K SLoC // 0.1% comments Rust 14 SLoC Shell 9 SLoC

pcapplusplus-sys

编译PcapPlusPlus并使其库和头文件可用。

将为依赖项的build.rs提供两个环境变量

  • DEP_PCAPPLUSPLUS_INCLUDE包含PcapPlusPlus头文件的路径
  • DEP_PCAPPLUSPLUS_LIB包含编译后的PcapPlusPlus库的路径

要在build.rs中使用PcapPlusPlus与cxx,请使用以下内容

let mut cpp = cxx_build::bridge("src/bridge.rs");

// Set include path for PcapPlusPlus
let pcpp_include = env::var_os("DEP_PCAPPLUSPLUS_INCLUDE")
    .expect("Environment variable DEP_PCAPPLUSPLUS_INCLUDE should have been set");
cpp.include(pcpp_include);

// ...

还需要链接到PcapPlusPlus库以及可能还需要链接到libpcap

// Link to PcapPlusPlus libraries
let pcpp_lib = env::var("DEP_PCAPPLUSPLUS_LIB")
    .expect("Environment variable DEP_PCAPPLUSPLUS_LIB should have been set");
println!("cargo:rustc-link-search=native={}", pcpp_lib);
println!("cargo:rustc-link-lib=static=Common++");
println!("cargo:rustc-link-lib=static=Packet++");
println!("cargo:rustc-link-lib=static=Pcap++");

// Link to libpcap
println!("cargo:rustc-link-lib=dylib=pcap");

依赖项