Thanks for your replies. I am rather confused as, if I build with ninja -v, I see the compile commands for the source files and then a link command for the executable, which begins:
/opt/rh/devtoolset-7/root/usr/bin/g++ -I../dpdk/include -I../include -I/opt/dpdk/dpdk-stable-18.11.8/x86_64-native-linuxapp-gcc/include -I../dpdk/../include -march=native -g -pthread -std=c++1y -MD -MT CMakeFiles/dpdk_test.dir/main.cpp.o -MF CMakeFiles/dpdk_test.dir/main.cpp.o.d -o CMakeFiles/dpdk_test.dir/main.cpp.o -c ../main.cpp
[6/6] : && /opt/rh/devtoolset-7/root/usr/bin/g++ -march=native -g
CMakeFiles/dpdk_test.dir/main.cpp.o CMakeFiles/dpdk_test.dir/Threads.cpp.o CMakeFiles/dpdk_test.dir/ThreadMon.cpp.o
CMakeFiles/dpdk_test.dir/ThreadMSG.cpp.o CMakeFiles/dpdk_test.dir/_kbhit.cpp.o
-o dpdk_test
dpdk/libdpdk.a
/usr/lib64/libdl.so /usr/lib64/libutil.so /usr/lib64/libm.so -Xlinker
-export-dynamic /opt/dpdk/dpdk-stable-18.11.8/x86_64-native-linuxapp-gcc/lib/librte_flow_classify.a
-Wl,--whole-archive /opt/dpdk/dpdk-stable-18.11.8/x86_64-native-linuxapp-gcc/lib/librte_pipeline.a
/opt/dpdk/dpdk-stable-18.11.8/x86_64-native-linuxapp-gcc/lib/librte_table.a
etc.
That link command links to libdpdk.a (my library) as expected, but it also links to all the 3rd party dpdk libraries, which I don’t expect.
Furthermore, I don’t see a linker command for libdpdk.a itself.
Any ideas please?