当前位置:网站首页>CMake 编译运行dpdk项目程序

CMake 编译运行dpdk项目程序

2022-08-10 00:02:00 独正己身

1 引言

dpdk20.11以及以后使用Pkg-Config维护它依赖库路径、头文件路径、编译选项、链接选项等信息,文件名后缀是.pc,方便第三方开发者便捷地获取相关信息 按官网流程安装完dpdk后发现/usr/loca/lib64中包含pkgconfig文件夹内包含libdpdk.pc

2 基本使用

vim /etc/profile

export PKG_CONFIG_PATH=/usr/loca/lib64/pkgconfig/

source /etc/profile

可以通过Linux的PkgConfig命令获取相关信息,如
pkg-config --libs --cflags libdpdk

3 CMake中如何调用

CMake通过FindPkgConfig模块来使用获取相关信息,比较经典的写法是:

set(ENV{PKG_CONFIG_PATH} /usr/local/lib64/pkgconfig/)
find_package(PkgConfig)
pkg_search_module(LIBDPDK REQUIRED libdpck)

后面就可以通过SEASTARPC_LIBRARIES等方式获取相关编译选项和库名称等。

MESSAGE(STATUS ${LIBDPDK_LIBRARIES})
MESSAGE(STATUS ${LIBDPDK_INCLUDE_DIRS})


###输出如下
-- rte_noderte_graphrte_bpfrte_flow_classifyrte_pipelinerte_tablerte_portrte_fibrte_ipsecrte_vhostrte_stackrte_securityrte_schedrte_reorderrte_ribrte_regexdevrte_rawdevrte_pdumprte_powerrte_memberrte_lpmrte_latencystatsrte_knirte_jobstatsrte_ip_fragrte_gsorte_grorte_eventdevrte_efdrte_distributorrte_cryptodevrte_compressdevrte_cfgfilerte_bitratestatsrte_bbdevrte_aclrte_timerrte_hashrte_metricsrte_cmdlinerte_pcirte_ethdevrte_meterrte_netrte_mbufrte_mempoolrte_rcurte_ringrte_ealrte_telemetryrte_kvargs
-- /usr/local/include

具体有哪些可以使用,可以参看CMake的FindPkgConfig模块使用.

4 后续链接

# 使用以下共享链接
target_compile_options (test_dpdk PRIVATE ${LIBDPDK_CFLAGS} ) 
target_link_libraries (test_dpdk ${LIBDPDK_LDFLAGS} )

# 或使用以下静态链接
target_compile_options (test_dpdk PRIVATE ${LIBDPDK_STATIC_CFLAGS} ) 
target_link_libraries (test_dpdk ${LIBDPDK_STATIC_LDFLAGS} )

 

原网站

版权声明
本文为[独正己身]所创,转载请带上原文链接,感谢
https://blog.csdn.net/u012149181/article/details/126001698