Wie kann CMake Linker-Flags anhängen, anstatt sie voranzustellen?

8

CMake scheint Linker-Flags am Anfang eines GCC-Kompilierbefehls voranzustellen, anstatt es am Ende anzufügen. Wie mache ich CMake Linker Flags anhängen?

Hier ist ein einfaches Beispiel, um das Problem zu reproduzieren. Betrachten Sie diesen C ++ Code, der clock_gettime verwendet:

%Vor%

Dies ist eine CMakeLists.txt, um die obige C ++ - Datei zu kompilieren:

%Vor%

Beachten Sie, dass wir -lrt hinzugefügt haben, da es die Definition von clock_gettime hat.

Kompilieren Sie dies mit:

%Vor%

Dieser Fehler tritt auf, obwohl Sie -lrt im Befehl:

sehen können %Vor%

Das Problem hier ist der C ++ - Kompilierbefehl, der von CMake erzeugt wird, wobei -lrt an der Vorderseite vorangestellt ist. Die Kompilierung funktioniert gut, wenn sie gewesen wäre:

%Vor%

Wie kann CMake die Linker-Flags am Ende anhängen?

    
Ashwin Nanjappa 11.03.2014, 05:12
quelle

1 Antwort

8

Im Allgemeinen können Sie nicht (denke ich), aber in dem speziellen Fall, dass Sie mit einer bestimmten Bibliothek verknüpfen möchten, sollten Sie die Syntax

verwenden %Vor%

stattdessen. CMake weiß, dass dies der Übergabe von -lrt auf der Linker-Befehlszeile entspricht.

    
steveire 11.03.2014, 07:44
quelle

Tags und Links