S-JIS[2016-04-27/2017-04-30] 変更履歴

Asakusa on M3BP Windowsコンパイル方法

Asakusa on M3BPのWindowsでのコンパイル方法のメモ。


概要

Asakusa on M3BPと言っても、Asakusaアプリケーションの開発自体はWindows上で実施できる。
ただ、実行環境はLinuxなので、Windows上でLinux向けのコンパイルを行うにはクロスコンパイルの環境を整える必要がある。

CygwinLinux用のgcc/g++を使うと、Linux向け バイナリーを生成することが出来る。


コンパイル環境の構築

WindowsでのM3BP用コンパイル環境には以下のものが必要になる。
(必要なバージョンは、Asakusa on M3BPユーザーガイドの開発環境の構築を参照)

  1. JDK1.8(Java8)
  2. Cygwin
  3. GNU make
  4. gcc/g++(4.8.5以降)
  5. CMake(2.8以降)

(→Linuxでのコンパイル環境の構築


コンパイル方法

Cygwinのコンソール(bash)上で、開発しているAsakusaアプリケーションのgradlewを使ってコンパイルできる。

$ cd Asakusaアプリケーションの場所
$ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"

--compiler-propertiesでM3BPコンパイル用のプロパティーを指定する。カンマ区切りで複数のm3bp.nativeを指定できるが、カンマの前後に空白を入れてはいけない

指定しているオプションは以下の通り。

プロパティー名 説明 備考
m3bp.native.cmake cmake.exe CMakeのコマンドファイル名。  
m3bp.native.make make.exe makeのコマンドファイル名。  
m3bp.native.cmake.CMAKE_SYSTEM_NAME Linux コンパイルターゲットのOS。  
m3bp.native.cmake.CMAKE_GENERATOR Unix Makefiles CMakeが生成するMakefileの形式。 省略するとNMake形式のMakefileが生成され、GNU Makeではエラーになる。
cmakeコマンドを直接使う場合の「-G "Linux Makefiles"」オプションと同等。
m3bp.native.cmake.CMAKE_C_COMPILER x86_64-pc-linux-gnu-gcc.exe Cコンパイラーのコマンドファイル名。 AsakusaFW 0.9.1では不要になった。[2017-04-30]
m3bp.native.cmake.CMAKE_CXX_COMPILER x86_64-pc-linux-gnu-g++.exe C++コンパイラーのコマンドファイル名。  

コマンドファイル名はフルパスでなくてもよい。PATHが通っていれば具体的な場所は探してくれる為。
(フルパスで指定してもよいが、gcc/g++が動作するのに必要なライブラリー(DLL)はPATHから探されるので、いずれにしてもPATHが通っている必要はある)

なお、「m3bp.native.cmake.HOGE=zzz」は、コンパイル時呼び出されるcmakeコマンドに「-DHOGE=zzz」として指定される。
Asakusa on M3BPリファレンスの『コンパイラプロパティ』を参照。


ちなみに、コンパイル時の各コマンドの呼び出しは以下のようになっていると思われる。
Gradle→CMake(Makefile生成)→make→gcc/g++


ツールチェインファイルの使用

CMakeにはツールチェインファイルという仕組みがある。
ツールチェインファイル(ファイル名は自由)にCMake用の設定を記述しておき、読み込ませることが出来る。

$ cd Asakusaアプリケーションの場所

$ cat toolchain.cmake
SET(CMAKE_SYSTEM_NAME Linux)

SET(CMAKE_C_COMPILER   x86_64-pc-linux-gnu-gcc.exe)
SET(CMAKE_CXX_COMPILER x86_64-pc-linux-gnu-g++.exe)

$ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_TOOLCHAIN_FILE=$(cygpath -ma toolchain.cmake)"

※AsakusaFW 0.9.1では、CMAKE_C_COMPILER(gcc)の指定は不要。[2017-04-30]

ツールチェインファイルをgradlewの引数で指定する。

ただし、CMAKE_GENERATORはコマンドラインの引数で指定しなければならない。
ツールチェインファイル内で指定しても無視される。


フォースコンパイラーの指定

CMakeは、実行の度にコンパイラーが正しく動作するかのチェックを行う(単純なサンプルソースをコンパイルする)。
デバッグモードにしてコンパイルしてみると、以下のようなログが出ている。

23:20:36 DEBUG cmake.exe: -- The C compiler identification is GNU 4.8.2
23:20:37 DEBUG cmake.exe: -- The CXX compiler identification is GNU 4.8.2
23:20:37 DEBUG cmake.exe: -- Check for working C compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe
23:20:40 DEBUG cmake.exe: -- Check for working C compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -- works
23:20:40 DEBUG cmake.exe: -- Detecting C compiler ABI info
23:20:42 DEBUG cmake.exe: -- Detecting C compiler ABI info - done
23:20:43 DEBUG cmake.exe: -- Detecting C compile features
23:20:50 DEBUG cmake.exe: -- Detecting C compile features - done
23:20:50 DEBUG cmake.exe: -- Check for working CXX compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-g++.exe
23:20:52 DEBUG cmake.exe: -- Check for working CXX compiler: D:/cygwin64/bin/x86_64-pc-linux-gnu-g++.exe -- works
23:20:52 DEBUG cmake.exe: -- Detecting CXX compiler ABI info
23:20:54 DEBUG cmake.exe: -- Detecting CXX compiler ABI info - done
23:20:54 DEBUG cmake.exe: -- Detecting CXX compile features
23:21:02 DEBUG cmake.exe: -- Detecting CXX compile features - done
23:21:02 DEBUG cmake.exe: -- Configuring done
23:21:02 DEBUG cmake.exe: -- Generating done

コンパイル環境(マシンスペック)にもよるが、1バッチ当たり5〜25秒くらいかかる。

ツールチェインファイルにフォースコンパイラーを記述すると、この検証作業が無くなるので、コンパイル時間が少し短くなる。

$ cd Asakusaアプリケーションの場所

$ cat force.cmake
SET(CMAKE_SYSTEM_NAME Linux)

INCLUDE(CMakeForceCompiler)

CMAKE_FORCE_C_COMPILER(  x86_64-pc-linux-gnu-gcc.exe GNU)
CMAKE_FORCE_CXX_COMPILER(x86_64-pc-linux-gnu-g++.exe GNU)

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

$ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_TOOLCHAIN_FILE=$(cygpath -ma force.cmake)"

ツールチェインファイルを使わないフォースコンパイラーの指定

ツールチェインファイルを使わずにフォースコンパイラーを指定することも出来る。
が、ドキュメントに記載されていないプロパティーを使っているので、正式な方法ではない(将来変わる可能性あり)。

$ cd Asakusaアプリケーションの場所
$ ./gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_C_COMPILER_FORCED=TRUE,m3bp.native.cmake.CMAKE_CXX_COMPILER_FORCED=TRUE"

コマンドプロンプト上でのコンパイル

Cygwinコンソール(bash)からではなく)コマンドプロンプトからgradlewを実行する場合は、環境変数PATHにmakeやコンパイラーへのパスを指定しておく必要がある。

> cd /d Asakusaアプリケーションの場所
> path %PATH%;D:/cygwin64/bin
> gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"
AsakusaFW 0.9.1ではCMAKE_C_COMPILERの指定は不要 [2017-04-30]
> gradlew m3bpCompileBatchapps --compiler-properties "m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux,m3bp.native.cmake.CMAKE_GENERATOR=Unix Makefiles,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe"

Windowsシステムの環境変数PATHに指定しておけば、コマンドプロンプト上でパスを指定し直す必要は無い。

※環境変数PATHを書き換えずにコマンドを全てフルパスで記述すれば大丈夫そうな気もするが、コンパイル中に使用するライブラリー(DLL)が見つけられず、エラーになってしまう。


よくあるエラー

Windows上でのM3BP用コンパイルでよく見かけるエラー。

CMake

CMakeが無いというエラー。

$ ./gradlew m3bpCompileBatchapps
〜
:m3bpCompileBatchapps
00:06:56 INFO compiling batch class: com.example.batch.ExampleBatch
00:06:57 ERROR failed to detect command: cmake

コンパイルプロパティーでCMakeのファイル名を指定する必要がある。
また、cmake.exeにパスが通っている必要がある。

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe

make

makeが無いというエラー。

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe
〜
:m3bpCompileBatchapps
00:10:03 INFO compiling batch class: com.example.batch.ExampleBatch
00:10:04 ERROR failed to detect command: make

コンパイルプロパティーでmakeのファイル名を指定する必要がある。
また、make.exeにパスが通っている必要がある。(Cygwinコンソール(bash)から実行しているなら、パスは通っているはず)

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe

コンパイラー

CMakeにおいて、コンパイラーが見つからないというエラー。
clという名前のファイルを探しにいって見つからないと言っているようだ)

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe
〜
:m3bpCompileBatchapps
00:13:51 INFO  compiling batch class: com.example.batch.ExampleBatch
00:13:52 WARN  cmake.exe: CMake Error at CMakeLists.txt:2 (project):
00:13:52 WARN  cmake.exe:   The CMAKE_C_COMPILER:
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:     cl
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   is not a full path and was not found in the PATH.
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   To use the NMake generator with Visual C++, cmake must be run from a shell
00:13:52 WARN  cmake.exe:   that can use the compiler cl from the command line.  This environment is
00:13:52 WARN  cmake.exe:   unable to invoke the cl compiler.  To fix this problem, run cmake from the
00:13:52 WARN  cmake.exe:   Visual Studio Command Prompt (vcvarsall.bat).
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   Tell CMake where to find the compiler by setting either the environment
00:13:52 WARN  cmake.exe:   variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
00:13:52 WARN  cmake.exe:   the compiler, or to the compiler name if it is in the PATH.
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe: CMake Error at CMakeLists.txt:2 (project):
00:13:52 WARN  cmake.exe:   The CMAKE_CXX_COMPILER:
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:     cl
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   is not a full path and was not found in the PATH.
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   To use the NMake generator with Visual C++, cmake must be run from a shell
00:13:52 WARN  cmake.exe:   that can use the compiler cl from the command line.  This environment is
00:13:52 WARN  cmake.exe:   unable to invoke the cl compiler.  To fix this problem, run cmake from the
00:13:52 WARN  cmake.exe:   Visual Studio Command Prompt (vcvarsall.bat).
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:   Tell CMake where to find the compiler by setting either the environment
00:13:52 WARN  cmake.exe:   variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
00:13:52 WARN  cmake.exe:   to the compiler, or to the compiler name if it is in the PATH.
00:13:52 WARN  cmake.exe:
00:13:52 WARN  cmake.exe:
00:13:52 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)

コンパイルプロパティーでコンパイラーのファイル名を指定する必要がある。
また、コンパイラーにパスが通っている必要がある。(Cygwinコンソール(bash)から実行しているなら、パスは通っているはず)

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe

nmake

CMakeにおいて、コンパイラーが使用できないというエラー。

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe
〜
:m3bpCompileBatchapps
00:18:32 INFO  compiling batch class: com.example.batch.ExampleBatch
00:18:35 WARN  cmake.exe: CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_f695f\fast"
00:18:35 WARN  cmake.exe: CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
00:18:35 WARN  cmake.exe:   The C compiler "D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe" is not able to
00:18:35 WARN  cmake.exe:   compile a simple test program.
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:   It fails with the following output:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:    Change Dir: D:/cygwin64/tmp/asakusa160230084594616670.tmp/m3bp-ExampleJob-e25a10e1/build/CMakeFiles/CMakeTmp
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:   Run Build Command:"nmake" "/NOLOGO" "cmTC_f695f\fast"
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:   Generator: execution of make failed.  Make command was: "nmake" "/NOLOGO"
00:18:35 WARN  cmake.exe:   "cmTC_f695f\fast"
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:   CMake will not be able to correctly generate this project.
00:18:35 WARN  cmake.exe: Call Stack (most recent call first):
00:18:35 WARN  cmake.exe:   CMakeLists.txt:2 (project)
00:18:35 WARN  cmake.exe:
00:18:35 WARN  cmake.exe:
00:18:35 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)

makeコマンドとしてnmakeを実行しようとしているが、使いたいのはGNU make。

CMakeが生成するMakefileをGNU makeのものにする必要がある。(Windows上で実行しているので、デフォルトではWindowsのnmake用のMakefileを生成している)

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles

なお、「Unix Makefiles」というスペース入りの文字列を指定しないといけないので、全体をダブルクォーテーションで囲むか、\マークでエスケープする必要がある。


CMAKE_C_COMPILERが使用されない

AsakusaFW 0.9.1にて、CMAKE_C_COMPILERが使われていないという警告。[2017-04-30]

〜
:m3bpCompileBatchapps
21:09:21 INFO  compiling batch class: com.example.batch.SummarizeBatch
21:09:30 WARN  cmake.exe: CMake Warning:
21:09:30 WARN  cmake.exe:   Manually-specified variables were not used by the project:
21:09:30 WARN  cmake.exe: 
21:09:30 WARN  cmake.exe:     CMAKE_C_COMPILER
21:09:30 WARN  cmake.exe: 
21:09:30 WARN  cmake.exe: 

AsakusaFW 0.9.1ではgccが使われなくなった為、CMAKE_C_COMPILERを指定する必要がなくなった(指定しても使われない)。
単なる警告なので無視しても問題は無いが、気になるならCMAKE_C_COMPILERの指定を外せばよい。


レシピ

なんかレシピで失敗とかいうエラー。

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles
〜
:m3bpCompileBatchapps
00:32:01 INFO  compiling batch class: com.example.batch.ExampleBatch
00:32:06 WARN  cmake.exe: CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
00:32:06 WARN  cmake.exe:   The C compiler "D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe" is not able to
00:32:06 WARN  cmake.exe:   compile a simple test program.
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   It fails with the following output:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:    Change Dir: D:/cygwin64/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   Run Build Command:"D:/cygwin64/bin/make.exe" "cmTC_8aee1/fast"
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   /usr/bin/make -f CMakeFiles/cmTC_8aee1.dir/build.make
00:32:06 WARN  cmake.exe:   CMakeFiles/cmTC_8aee1.dir/build
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   make[1]: ▒?ィレクトリ
00:32:06 WARN  cmake.exe:   '/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp'
00:32:06 WARN  cmake.exe:   に入りま▒?
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   Building C object CMakeFiles/cmTC_8aee1.dir/testCCompiler.c.obj
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -o
00:32:06 WARN  cmake.exe:   CMakeFiles/cmTC_8aee1.dir/testCCompiler.c.obj -c
00:32:06 WARN  cmake.exe:   D:/cygwin64/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp/testCCompiler.c
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   Linking C executable cmTC_8aee1.exe
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   "C:/Program Files (x86)/CMake/bin/cmake.exe" -E remove -f
00:32:06 WARN  cmake.exe:   CMakeFiles/cmTC_8aee1.dir/objects.a
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   D:/cygwin64/bin/ar.exe cr CMakeFiles/cmTC_8aee1.dir/objects.a
00:32:06 WARN  cmake.exe:   @CMakeFiles/cmTC_8aee1.dir/objects1.rsp
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   D:/cygwin64/bin/x86_64-pc-linux-gnu-gcc.exe -Wl,--whole-archive
00:32:06 WARN  cmake.exe:   CMakeFiles/cmTC_8aee1.dir/objects.a -Wl,--no-whole-archive -o
00:32:06 WARN  cmake.exe:   cmTC_8aee1.exe -Wl,--out-implib,libcmTC_8aee1.dll.a
00:32:06 WARN  cmake.exe:   -Wl,--major-image-version,0,--minor-image-version,0
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld:
00:32:06 WARN  cmake.exe:   認識できな▒?オプション '--out-implib' で▒?
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/../../../../x86_64-pc-linux-gnu/bin/ld:
00:32:06 WARN  cmake.exe:   使用法に関する▒?報につ▒?ては --help
00:32:06 WARN  cmake.exe:   オプションを使用してください
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   collect2: エラー: ld はス▒?ータス 1 で終▒?しました
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   CMakeFiles/cmTC_8aee1.dir/build.make:97: ターゲ▒?▒? 'cmTC_8aee1.exe'
00:32:06 WARN  cmake.exe:   のレシピで失敗しました
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   make[1]: *** [cmTC_8aee1.exe] エラー 1
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   make[1]: ▒?ィレクトリ
00:32:06 WARN  cmake.exe:   '/tmp/asakusa5298078949587321952.tmp/m3bp-ExampleJob-6cd44631/build/CMakeFiles/CMakeTmp'
00:32:06 WARN  cmake.exe:   から出ま▒?
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   Makefile:126: ターゲ▒?▒? 'cmTC_8aee1/fast'
00:32:06 WARN  cmake.exe:   のレシピで失敗しました
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   make: *** [cmTC_8aee1/fast] エラー 2
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:   CMake will not be able to correctly generate this project.
00:32:06 WARN  cmake.exe: Call Stack (most recent call first):
00:32:06 WARN  cmake.exe:   CMakeLists.txt:2 (project)
00:32:06 WARN  cmake.exe:
00:32:06 WARN  cmake.exe:
00:32:06 ERROR command returns non-zero exit status: C:\Program Files (x86)\CMake\bin\cmake.exe (status=1)

よく分からないが^^;、ターゲットOSにLinuxを指定していないとこのエラーになるようだ。

$ ./gradlew m3bpCompileBatchapps --compiler-properties m3bp.native.cmake=cmake.exe,m3bp.native.make=make.exe,m3bp.native.cmake.CMAKE_C_COMPILER=x86_64-pc-linux-gnu-gcc.exe,m3bp.native.cmake.CMAKE_CXX_COMPILER=x86_64-pc-linux-gnu-g++.exe,m3bp.native.cmake.CMAKE_GENERATOR=Unix\ Makefiles,m3bp.native.cmake.CMAKE_SYSTEM_NAME=Linux

使用方法へ戻る / Asakusa on M3BPへ戻る / AsakusaFW目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま