Qmakeでカスタムツールチェーンをセットアップしたい。コンパイラを設定しましたが、リンカーの設定方法がわかりません。 cmakeがコンパイラーを使用してリンクしようとするため、このエラーが報告されます。
The C compiler "xgcc.exe" is not able to compile a simple test program.
ここに私のツールチェーンファイルのスニペットがあります
# 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)
コンパイラを強制しようとしましたが、リンカの問題は解決されません。
CMAKE_CXX_LINK_EXECUTABLE、CMAKE_C_LINK_EXECUTABLE変数を使用する必要があります。
SET(CMAKE_C_LINK_EXECUTABLE "c:\\MoSync\\bin\\pipe-tool.exe")
リンクコマンドラインはModules/CMake {C、CXX、Fortran} Information.cmakeで設定されており、デフォルトではCMAKE_LINKERではなくcompilerを使用します(- ソースコード )。これは、変数CMAKE_CXX_LINK_EXECUTABLE(およびフレンド)に存在するリンクコマンドラインを構築するルールを置き換えることで変更できます。 NBこの変数は、リンカー実行可能ファイルへのパスを示していません。実行可能ファイルをリンクする方法を示しています!
1つのアプローチは、リンカーを使用するようにそのルールを設定することです。
cmake -DCMAKE_LINKER=/path/to/linker -DCMAKE_CXX_LINK_EXECUTABLE="<CMAKE_LINKER> <FLAGS> <CMAKE_CXX_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
参照 このCMakeメーリングリストからの投稿 -これは、リンカー修飾子を別のリンカーの前に付加するのにも自然な場所です。
変数$ {CMAKE_LINKER}をCMakeCache.txtまたはccmakeの後に設定します。詳細オプションの下。