GNU/Linux >> LINUX-Kenntnisse >  >> Linux

MPI-Kompilierungsfehler:undefinierter Verweis auf „sqrt“ – Gelöst

Frage: Sehr geehrter Techglimpse, ich versuche, ein MPI-Programm (ein einfaches Beispielprogramm, das den PI-Wert berechnet) mit MPICH Version 1.2.6 zu kompilieren. Unten ist der Befehl, den ich zum Kompilieren verwendet habe:

mpicc -o a.out pi.c

Der Befehl schlug jedoch mit einer Fehlermeldung als „undefinierter Verweis auf `sqrt‘ fehl “. Ich habe den Code überprüft und er hat math.h definiert. Was könnte das Problem sein? – Surya

Die ausführliche Fehlermeldung:

$ mpicc -o mpi-pi pi.c
/tmp/ccwuQwDw.o: In function `main':
pi.c:(.text+0x15f): undefined reference to `sqrt'
collect2: ld returned 1 exit status

Lösung:

Surya, du musst die Mathematikbibliothek verlinken während der Kompilierung wie unten gezeigt:

$ mpicc -o a.out pi.c -lm

Die libm.so befindet sich unter /usr/lib . Der Speicherort kann jedoch von Maschine zu Maschine variieren.

$ whereis libm.so
libm: /usr/lib/libm.so /usr/lib/libm.a

Bei Option -lm , ‘l ‘ verweist auf das Präfix ‘lib’ und ‘m ‘ für Mathe.


Linux
  1. Fehlerbehandlung in Bash-Skripten

  2. RSAKeyFind Compilation (Make) Error:rsakeyfind.cpp – „memcmp, read, close“ wurde in diesem Bereich nicht deklariert [Gelöst]

  3. Schwerwiegender Fehler:Aufruf der undefinierten Funktion mysqli_connect() in /home/user/public_html/includes/connection.php

  4. C++-Fehler:Undefinierter Verweis auf „clock_gettime“ und „clock_settime“

  5. C++ Boost:undefinierte Referenz auf boost::system::generic_category()

Libusb undefinierter Verweis auf

Was ist :-!! im C-Code?

crt1.o:In Funktion `_start':- undefinierter Verweis auf `main' unter Linux

Verwendung von sqrtf() in C:undefinierter Verweis auf `sqrtf'

undefinierter Verweis auf das Symbol „[email protected]@GLIBC_2.4“

Undefinierter Verweis auf Symbolfehler „_ZN5boost6system15system_categoryEv“.