aregm / nff-go

NFF-Go -Network Function Framework for GO (former YANFF)
BSD 3-Clause "New" or "Revised" License
1.38k stars 156 forks source link

start nff appears In function and multiple definition of #736

Closed baerwang closed 1 year ago

baerwang commented 2 years ago

I built an nff project,modified low.h,following is the running code

code: /opt/nff-go/internal/low/low.h

/*
#cgo CFLAGS: -I/opt/nff-go/dpdk/dpdk/build/include -O3 -g -m64 -pthread -std=gnu11 -march=native -DRTE_MACHINE_CPUFLAG_SSE -DRTE_MACHINE_CPUFLAG_SSE2 -DRTE_MACHINE_CPUFLAG_SSE3 -DRTE_MACHINE_CPUFLAG_SSSE3 -DRTE_MACHINE_CPUFLAG_SSE4_1 -DRTE_MACHINE_CPUFLAG_SSE4_2 -DRTE_MACHINE_CPUFLAG_PCLMULQDQ -DRTE_MACHINE_CPUFLAG_RDRAND -DRTE_MACHINE_CPUFLAG_F16C -Wno-deprecated-declarations
#cgo LDFLAGS: -L/opt/nff-go/dpdk/dpdk/build/lib -lrte_distributor -lrte_reorder -lrte_kni -lrte_pipeline -lrte_table -lrte_port -lrte_timer -lrte_jobstats -lrte_lpm -lrte_power -lrte_acl -lrte_meter -lrte_sched -lrte_vhost -lrte_ip_frag -lrte_cfgfile -Wl,--whole-archive -Wl,--start-group -lrte_kvargs -lrte_mbuf -lrte_hash -lrte_ethdev -lrte_mempool -lrte_ring -lrte_mempool_ring -lrte_eal -lrte_cmdline -lrte_net -lrte_bus_pci -lrte_pci -lrte_bus_vdev -lrte_timer -lrte_pmd_bond -lrte_pmd_vmxnet3_uio -lrte_pmd_virtio -lrte_pmd_cxgbe -lrte_pmd_enic -lrte_pmd_i40e -lrte_pmd_fm10k -lrte_pmd_ixgbe -lrte_pmd_e1000 -lrte_pmd_ena -lrte_pmd_ring -lrte_pmd_af_packet -lrte_pmd_null -Wl,--end-group -Wl,--no-whole-archive -lrt -lm -ldl -lnuma
#include "low.h"
*/
import "C"

main.go

package main

import (
        "github.com/intel-go/nff-go/flow"
)

func main() {
        flow.SystemInit(nil)
        flow.SystemStart()
}

nff start the following error message appeared

error:

# github.com/intel-go/nff-go/internal/low
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_count':
rte_kvargs.c:(.text+0x0): multiple definition of `rte_kvargs_count'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text+0x0): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_process':
rte_kvargs.c:(.text+0x60): multiple definition of `rte_kvargs_process'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text+0x60): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_free':
rte_kvargs.c:(.text+0x140): multiple definition of `rte_kvargs_free'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text+0x140): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_parse':
rte_kvargs.c:(.text+0x170): multiple definition of `rte_kvargs_parse'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text+0x170): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_parse_delim':
rte_kvargs.c:(.text.experimental+0x0): multiple definition of `rte_kvargs_parse_delim'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text.experimental+0x0): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o): In function `rte_kvargs_strcmp':
rte_kvargs.c:(.text.experimental+0x70): multiple definition of `rte_kvargs_strcmp'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_kvargs.a(rte_kvargs.o):rte_kvargs.c:(.text.experimental+0x70): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o): In function `rte_pktmbuf_init':
rte_mbuf.c:(.text+0x0): multiple definition of `rte_pktmbuf_init'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o):rte_mbuf.c:(.text+0x0): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o): In function `rte_pktmbuf_pool_init':
rte_mbuf.c:(.text+0xc0): multiple definition of `rte_pktmbuf_pool_init'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o):rte_mbuf.c:(.text+0xc0): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o): In function `rte_pktmbuf_pool_create_by_ops':
rte_mbuf.c:(.text+0x120): multiple definition of `rte_pktmbuf_pool_create_by_ops'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o):rte_mbuf.c:(.text+0x120): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o): In function `rte_pktmbuf_pool_create':
rte_mbuf.c:(.text+0x270): multiple definition of `rte_pktmbuf_pool_create'
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o):rte_mbuf.c:(.text+0x270): first defined here
/opt/nff-go/dpdk/dpdk/x86_64-native-linuxapp-gcc-install/usr/local/lib/librte_mbuf.a(rte_mbuf.o): In function `rte_mbuf_sanity_check':
rte_mbuf.c:(.text+0x3b0): multiple definition of `rte_mbuf_sanity_check'