CMake: utiliser un linker personnalisé

je veux configurer une chaîne d'outils personnalisée avec qmake. J'ai configuré le compilateur mais je ne sais pas comment configurer le linker. Cette erreur est signalée parce que cmake essaye d'utiliser le compilateur pour lier:

The C compiler "xgcc.exe" is not able to compile a simple test program.
<!-Voici un extrait de mon fichier de chaîne d'outils

# specify the cross compiler
INCLUDE(CMakeForceCompiler)
SET(CMAKE_C_COMPILER   xgcc.exe)
SET(CMAKE_CXX_COMPILER xgcc.exe)
#CMAKE_FORCE_C_COMPILER(xgcc.exe GNU)
#CMAKE_FORCE_CXX_COMPILER(xgcc.exe GNU)

j'ai essayé de forcer le compilateur, mais le problème de linker ne sera pas résolu.

20
demandé sur Breezeight 2009-12-08 18:35:33

3 réponses

la ligne de commande link est définie dans Modules / CMake{c,CXX, Fortran}Information.cmake et par défaut à l'aide de la compilateur, not CMAKE_LINKER (see code source). Ceci peut être modifié en remplaçant la règle qui construit la ligne de commande link, qui vit dans les variables CMAKE_CXX_LINK_EXECUTABLE (and friends). Notez que cette variable n'indique pas le chemin vers l'exécutable du linker; elle indique comment lier un exécutable!

Une approche consiste à définir la règle à utiliser l'éditeur de liens, par exemple,

cmake -DCMAKE_LINKER=/path/to/linker -DCMAKE_CXX_LINK_EXECUTABLE="<CMAKE_LINKER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"

Voir aussi ce post de CMake liste de diffusion - Cela fait aussi un endroit naturel pour préparer un modificateur de linker à un autre.

13
répondu mabraham 2018-03-21 09:54:57

je dois utiliser CMAKE_CXX_LINK_EXECUTABLE, CMAKE_C_LINK_EXECUTABLE variable:

SET(CMAKE_C_LINK_EXECUTABLE "c:\MoSync\bin\pipe-tool.exe")
8
répondu Breezeight 2009-12-26 19:48:01

définir la variable ${CMAKE_LINKER} soit dans CMakeCache.txt ou après ccmake . sous options avancées.

5
répondu Gunther Piez 2009-12-08 16:43:30