2013-04-15 29 views
12
'@@ GLIBC_2.2.5をLOG2'

いただきましLD:シンボルへの未定義参照は

for (level = 1; level <= log2((double)size); level++) 
         ^

と間違ってlog2()を使用しますがいただきました!間違ったからのように思えますか?私はOpenMPIコードで実際に使用していますが、この行をコメントすることで問題は解決します。 log2(4)は動作しますが、私は、変数を渡すカントのように40

[[email protected] Assign3]$ mpicc -o cpi cpi.c && mpirun -np 16 cpi 
/usr/bin/ld: /tmp/cca9x4he.o: undefined reference to symbol '[email protected]@GLIBC_2.2.5' 
/usr/bin/ld: note: '[email protected]@GLIBC_2.2.5' is defined in DSO /usr/lib/libm.so.6 so try adding it to the linker command line 
/usr/lib/libm.so.6: could not read symbols: Invalid operation 
collect2: error: ld returned 1 exit status 

参照ラインはそう

Full Sourcehttp://pastie.org/7559178)?

答えて

27

libmをリンクするには、この文書のように-lm引数を追加する必要があります。 MPI under Linux in the Math Departmentは言う:あなたのコードは、 (EXP、COSなどのような)数学関数が含まれて

場合は数学ライブラリlibm.so.にリンクする必要がありますこれは、単にシリアルコンパイルのためのように、あなたの コマンドをコンパイルの最後に-lmを追加することによって、それは、私がしました

mpiccの-oサンプルSAMPLE.C -lm

+0

おかげで、ある 、行われていますそれを修正した –

関連する問題