0

MinGW MSYS2 システムでソースから cmake2.8.12.2 をコンパイルしようとすると、sh ブートストラップを実行した後に次のエラーが発生します。

make: 'cmStandardIncludes.o' で必要なターゲット '/cygdrive/e/software/pkg/cmake-2.8.12.2/Source /cmStandardIncludes.cxx' を作成するルールはありません。止まる。

ソース ディレクトリを確認したところ、cmStandardIncludes.cxx が見つかりました。

出力:

E:\software\pkg\cmake-2.8.12.2>sh bootstrap
---------------------------------------------
CMake 2.8.12.2, Copyright 2000-2012 Kitware, Inc.
C compiler on this system is: gcc
C++ compiler on this system is: g++
Makefile processor on this system is: make
g++ is GNU compiler
g++ does not have setenv
g++ does not have unsetenv
g++ has environ in stdlib.h
g++ has STL in std:: namespace
g++ has ANSI streams
g++ has streams in std:: namespace
g++ has sstream
g++ has operator!=(string, char*)
g++ has stl iterator_traits
g++ has standard template allocator
g++ has allocator<>::rebind<>
g++ does not have non-standard allocator<>::max_size argument
g++ has stl containers supporting allocator objects
g++ has header cstddef
g++ requires template friends to use <>
g++ supports member templates
g++ has standard template specialization syntax
g++ has argument dependent lookup
g++ does not have struct stat with st_mtim member
g++ has ios::binary openmode
g++ has ANSI for scoping
---------------------------------------------
make: *** No rule to make target '/cygdrive/e/software/pkg/cmake-2.8.12.2/Source
/cmStandardIncludes.cxx', needed by 'cmStandardIncludes.o'.  Stop.
---------------------------------------------
Error when bootstrapping CMake:
Problem while running make
---------------------------------------------
Log of errors: /cygdrive/e/software/pkg/cmake-2.8.12.2/Bootstrap.cmk/cmake_boots
trap.log
---------------------------------------------
4

1 に答える 1

1

MinGW コンパイラを使用する場合は、cygwin の代わりに MinGW シェル プロンプトを使用することをお勧めします。これにより、いくつかの MinGW コンパイラ固有の環境変数が正しく設定されていることが保証されます。

MSYS を使用する場合は、「MSYS Makefiles」ジェネレーターを使用する必要があり、makeプログラムはmake(正しくインストールされていれば) 簡単に呼び出す必要がありますが、「MinGW Makefiles」をジェネレーターとして使用する場合はmingw32-make、make プログラムとして使用する必要があります。

"MinGW Makefiles" を生成して make を呼び出すと、間違った make プログラムが呼び出されます。明示的にmingw32-make を指定します。

于 2014-01-29T18:53:09.420 に答える