Page 1 of 1

Verknüpfen Sie die OpenMP-Bibliothek statisch in C/C++

Posted: 13 Jan 2025, 16:47
by Guest
Ich habe ein einfaches C++-Programm, das nichts tut:

Code: Select all

int main() { return 0; }
Ich versuche, dieses Programm vollständig statisch zu erstellen, indem ich den folgenden Befehl verwende:

Code: Select all

g++ -o c c.cc -static
Alles funktioniert gut. Wenn ich jedoch versuche, OpenMP, das eigentlich keine Bibliothek ist, zu verknüpfen, verwende ich das Flag -fopenmp im statischen Modus wie folgt:

Code: Select all

g++ -o c c.cc -fopenmp -static
Der Compiler gibt einen Fehler aus:

Code: Select all

/usr/bin/ld: cannot find -lgomp: No such file or directory
collect2: error: ld returned 1 exit status
Dieses Problem tritt auch bei clang++ auf. Das gleiche passiert mit gcc und g++. Andere Bibliotheken, die über statische Versionen verfügen, wie z. B. Curl, verlinken jedoch korrekt im statischen Modus.
(Ich verwende Arch Linux)