【问题标题】:dpdk library Linking issuedpdk 库链接问题
【发布时间】:2021-07-30 08:05:11
【问题描述】:

使用Meson,Ninja默认安装dpdk会提供libdpdk.pc。请在Cmakefile dpdk 20.11.2版本中提供链接dpdk库的建议。

cmake

    Checking for libdpdk
    Found libdpdk,version 20.11.2

制作错误信息:

In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/x86intrin.h:37:0,
from /usr/local/include/rte_vect.h:31,
from /usr/local/include/rte_memcpy.h:17,
from /home/sample.c:88, 

/usr/lib/gcc/x86_64-linux-gnu/5/include/tmmintrin.h:185:1: 错误:调用 always_inline ‘_mm_alignr_epi8’时内联失败:目标特定选项不匹配

libdpdk.pc

prefix=/usr/local
libdir=${prefix}/lib/x86_64-linux-gnu
includedir=${prefix}/include
Name:DPDK
Requires:libdpdk-libs
Cflags:-I{includedir}

CMakeLists.txt

    find_package(PkgConfig REQUIRED)
    pkg_check_modules(DPDK REQUIRED libdpdk)
    include_directories(${DPDK_INCLUDE_DIR})
    include_directories(${CMAKE_SOURCE_DIR}/include)
    link_directories(${DPDK_LIBRARY_DIR})
set(DPDK_LIBS "-Wl,--whole-archive -l dpdk -Wl,--no-whole-archive")

    add_executable(sample sample.c)
   # target_include_directories(sample PUBLIC /usr/local/include)
    #target_include_directories(sample PUBLIC /usr/local/lib/x86_64-linux-gnu)
    target_link_libraries(sample PUBLIC ${DPDK_LIBS})

【问题讨论】:

    标签: dpdk


    【解决方案1】:

    你应该使用

    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mssse3")
    

    CMakeLists.txt.

    【讨论】:

    • 感谢您的解决方案。我可以通过将 CMAKE_CXX_FLAGS 设置为 msse4.2 来解决它。
    • 将 CMAKE_C_FLAGS 设置为 -mssse3 会产生相同的错误。将 CMAKE_CXX_FLAGS 设置为 msse4.2 解决了这个问题。
    猜你喜欢
    • 2011-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-26
    • 2014-04-18
    相关资源
    最近更新 更多