programing

ld: 'log2@@GLIBC_2.2.5' 기호에 대한 정의되지 않은 참조입니다.

padding 2023. 7. 22. 09:31
반응형

ld: 'log2@@GLIBC_2.2.5' 기호에 대한 정의되지 않은 참조입니다.

무슨 문제가 있습니까?

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

사용한 것 같습니다.log2()그런데 뭐가 문제야?저는 OpenMPI 코드와 함께 사용하고 있지만, 이 라인에 주석을 달면 문제가 해결됩니다.

전체 소스(http://pastie.org/7559178) 40행 참조

[jiewmeng@JM Assign3]$ mpicc -o cpi cpi.c && mpirun -np 16 cpi
/usr/bin/ld: /tmp/cca9x4he.o: undefined reference to symbol 'log2@@GLIBC_2.2.5'
/usr/bin/ld: note: 'log2@@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

처럼 보입니다.log2(4)작동하지만 변수를 통과할 수는 없습니까?

링크하려면libm추가해야 합니다.-lm이 문서에서와 같이, 논쟁; 수학부의 리눅스 아래 MPI는 다음과 같이 말합니다.

코드에 수학 함수(exp, cos 등)가 포함되어 있으면 수학 라이브러리 libm.so 에 링크해야 합니다.이것은 직렬 컴파일과 마찬가지로 컴파일 명령의 끝에 -lm을 추가함으로써 수행됩니다. 즉,

mpicc -o 샘플 sample.c - 샘플

언급URL : https://stackoverflow.com/questions/16006145/ld-undefined-reference-to-symbol-log2glibc-2-2-5

반응형