CMake: usa un linker personalizzato

Voglio impostare una toolchain personalizzata con qmake. Ho impostato il compilatore ma non so come impostare il linker. Questo errore viene segnalato perché cmake tenta di utilizzare il compilatore per colbind:

The C compiler "xgcc.exe" is not able to compile a simple test program. 

Qui c’è uno snippet del mio file toolchain

 # 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) 

Ho provato a forzare il compilatore ma il problema del linker non sarà risolto.

La riga di comando del collegamento è impostata in Modules / CMake {C, CXX, Fortran} Information.cmake e le impostazioni predefinite utilizzano il compilatore , non CMAKE_LINKER (vedere il codice sorgente ). Questo può essere cambiato sostituendo la regola che costruisce la linea di comando del link, che vive nelle variabili CMAKE_CXX_LINK_EXECUTABLE (e amici). NB quella variabile non indica il percorso dell’eseguibile del linker; dice come colbind un eseguibile!

Un approccio è quello di impostare tale regola per utilizzare il linker, ad es

 cmake -DCMAKE_LINKER=/path/to/linker -DCMAKE_CXX_LINK_EXECUTABLE="     -o  " 

Vedi anche questo post dalla mailing list di CMake – questo rende anche un posto naturale per anteporre un modificatore del linker a un altro linker.

Devo utilizzare la variabile CMAKE_CXX_LINK_EXECUTABLE, CMAKE_C_LINK_EXECUTABLE:

 SET(CMAKE_C_LINK_EXECUTABLE "c:\\MoSync\\bin\\pipe-tool.exe") 

Imposta la variabile $ {CMAKE_LINKER} in CMakeCache.txt o dopo ccmake. sotto opzioni avanzate.