I've built an app with dpdk 20.11 and I'd like to convert it to a shared library. I've removed the main function, changed the app name to a library name, and configured RTE_BUILD_SHARED_LIB=y. However, make still complains about "undefined reference to main".
The CC command is as follows:
cc -O0 -ggdb -include rte_config.h -march=native -I/usr/local/include -DALLOW_EXPERIMENTAL_API eCPRI.c cmdParser.c -o build/libeCPRIgen-shared -L/usr/local/lib/x86_64-linux-gnu -Wl,--as-needed -lrte_node -lrte_graph -lrte_bpf -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_port -lrte_fib -lrte_ipsec -lrte_vhost -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_regexdev -lrte_rawdev -lrte_pdump -lrte_power -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_rcu -lrte_ring -lrte_eal -lrte_telemetry -lrte_kvargs
It looks like it's still trying to build an executable as opposed to a shared library. Do I need to change more in my makefile, or is there a different option than RTE_BUILD_SHARED_LIB in newer versions of dpdk?
Thank you for posting in Intel Ethernet Communities.
Since this question involves DPDK, please check with Intel Premier Support for further assistance. See the following for access to Intel Premier Support.
Click the "Access and Log In" to contact the DPDK support https://www.intel.com/content/www/us/en/design/support/ips/training/welcome.html
Please be informed that we will now close this request. Just feel free to post a new question if you may have any other inquiry in the future as this thread will no longer be monitored.
Thank you for choosing Intel and stay safe!
Intel® Customer Support