Thread (1 message) 1 message, 1 author, 2014-01-02

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

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help