Re: g++: undefined reference to
From: Hamid Ramazani <hidden>
Date: 2014-01-02 16:40:10
Stefan, I did: find `pwd` | egrep "[ao]$" >> liblistWithDuplicates.txt then opened it and added \ to the end of each line and added those libraries to my g++ arguments in Makefile after helloClass.o Now, in output I get two types of errors: multiple definition of .... undefined reference to ... In order to remove duplicate object file names, I wrote a short python script which is attached, to create liblistNoDuplicates.txt, but still I get the same errors. I'd really appreciate your advice. All the Best, Hamid On 1/2/14, Stefan Baranoff [off-list ref] wrote:
Hamid, I do not think your attachments made it through but it looks like you are not linking the DPDK object files in this line: g++ helloClass.o -I/home/hamid/dpdk/dpdk-1.5.1r1/x86_64-default-linuxapp-gcc/include -lstdc++ There would need to be many more files beyond helloClass.o listed. Try adding the relevant DPDK object files (I do not have the path off hand but I believe they are in the "build" folder) and recompiling. The files you need to add are those built when your build DPDK itself. This is similar to missing -lpcap if compiling against libpcap but in this case you need to link against object files, not a shared library. Good luck! Stefan Sent from my smart phone; people don't make typos, Swype does! On Jan 2, 2014 4:35 AM, "Hamid Ramazani" [off-list ref] wrote:quoted
Hi, I wanted to write a simple program using class (object oriented). I've attached my helloClass.cpp and also Makefile. after runnig make I get below errors. I think: 1. it is the problem of using c code in c++ 2. I've used extern "C" in helloClass.cpp 3. Should I recompile the DPDK from source with gcc -c argument for compatibility with g++? Thanks in advance. g++ -c helloClass.cpp -I/home/hamid/dpdk/dpdk-1.5.1r1/x86_64-default-linuxapp-gcc/include g++ helloClass.o -I/home/hamid/dpdk/dpdk-1.5.1r1/x86_64-default-linuxapp-gcc/include -lstdc++ helloClass.o: In function `rte_lcore_id': helloClass.cpp:(.text+0x7): undefined reference to `per_lcore__lcore_id' helloClass.o: In function `rte_get_master_lcore': helloClass.cpp:(.text+0x15): undefined reference to `rte_eal_get_configuration' helloClass.o: In function `rte_lcore_is_enabled': helloClass.cpp:(.text+0x2a): undefined reference to `rte_eal_get_configuration' helloClass.o: In function `HelloClass::HelloClass(int, char**)': helloClass.cpp:(.text._ZN10HelloClassC2EiPPc[_ZN10HelloClassC5EiPPc]+0x20): undefined reference to `rte_eal_init' helloClass.cpp:(.text._ZN10HelloClassC2EiPPc[_ZN10HelloClassC5EiPPc]+0x4b): undefined reference to `__rte_panic' helloClass.o: In function `HelloClass::run()': helloClass.cpp:(.text._ZN10HelloClass3runEv[HelloClass::run()]+0x3f): undefined reference to `rte_eal_remote_launch' helloClass.cpp:(.text._ZN10HelloClass3runEv[HelloClass::run()]+0x80): undefined reference to `rte_eal_mp_wait_lcore' collect2: ld returned 1 exit status make: *** [helloClass.o] Error 1 All the Best, Hamid
Attachments
- liblistNoDuplicates.txt [text/plain] 18476 bytes · preview
- liblistWithDuplicates.txt [text/plain] 22184 bytes · preview