cmake で何かをコンパイルしようとしていますが、ソースからの要求に関するエラーが発生します。このエラーについて詳しく知るにはどうすればよいですか? ここに出力があります
C:\Users\sansari\Downloads\tpm_emulator-0.7.4\tpm_emulator-0.7.4\build>cmake ../
CMake Error at CMakeLists.txt:17 (message):
TPM_Emulator requires an out of source build.
-- Configuring incomplete, errors occurred!
See also "C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/CMakeFiles/CMakeOutput.log".
CMakeLists.txt の内容は次のとおりです。
# Software-based Trusted Platform Module (TPM) Emulator
# Copyright (C) 2004-2010 Mario Strasser <mast@gmx.net>
#
# $Id: CMakeLists.txt 475 2011-12-20 18:21:19Z mast $
project(TPM_Emulator C)
cmake_minimum_required(VERSION 2.4)
set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
if(COMMAND cmake_policy)
cmake_policy(SET CMP0003 NEW)
endif()
# enforce out of source build
string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" IS_INSOURCE)
if(IS_INSOURCE)
message(FATAL_ERROR "${PROJECT_NAME} requires an out of source build.")
endif()
# set project and build version
set(${PROJECT_NAME}_VERSION_MAJOR 0)
set(${PROJECT_NAME}_VERSION_MINOR 7)
string(REGEX REPLACE ".*Revision: ([0-9]+).*" "\\1" ${PROJECT_NAME}_VERSION_BUILD "$Revision: 475 $")
# create project configuration
if(WIN32)
STRING(REGEX REPLACE "\\\\" "/" PROGRAMFILES "$ENV{PROGRAMFILES}/${PROJECT_NAME}")
set(TPM_LOG_FILE "${PROGRAMFILES}/tpmd.log")
set(TPM_STORAGE_NAME "${PROGRAMFILES}/tpm_emulator-1_2_${${PROJECT_NAME}_VERSION_MAJOR}_${${PROJECT_NAME}_VERSION_MINOR}
")
set(TPM_DEVICE_NAME "//./pipe/tpmd:0")
elseif(APPLE)
set(TPM_LOG_FILE "/private/var/log/tpmd.log")
set(TPM_SOCKET_NAME "/private/var/run/tpm/tpmd_socket:0")
set(TPM_STORAGE_NAME "/private/var/lib/tpm/tpm_emulator-1_2_${${PROJECT_NAME}_VERSION_MAJOR}_${${PROJECT_NAME}_VERSION_MINOR}")
set(TPM_DEVICE_NAME "/dev/tpm")
else()
set(TPM_LOG_FILE "/var/log/tpmd.log")
set(TPM_SOCKET_NAME "/var/run/tpm/tpmd_socket:0")
set(TPM_STORAGE_NAME "/var/lib/tpm/tpm_emulator-1_2_${${PROJECT_NAME}_VERSION_MAJOR}_${${PROJECT_NAME}_VERSION_MINOR}")
set(TPM_DEVICE_NAME "/dev/tpm")
endif()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
add_definitions(-Wall -Werror -Wno-unused-parameter -Wpointer-arith -Wcast-align -Wwrite-strings)
if("${CMAKE_SYSTEM}" MATCHES "Linux")
add_definitions(-Wextra)
endif()
if(USE_OPENSSL)
add_definitions(-DUSE_OPENSSL)
endif()
include_directories("/opt/local/include")
link_directories("/opt/local/lib")
# configure CPack
set(CPACK_PACKAGE_VERSION_MAJOR ${${PROJECT_NAME}_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${${PROJECT_NAME}_VERSION_MINOR})
set(CPACK_SOURCE_PACKAGE_FILE_NAME "tpm_emulator-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.4")
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_IGNORE_FILES ".svn/" "/build/" "/.project" "/.cproject")
set(CPACK_GENERATOR "ZIP")
set(CPACK_SET_DESTDIR ON)
include(CPack)
# include root directories
include_directories(${CMAKE_SOURCE_DIR})
include_directories(${CMAKE_BINARY_DIR})
# add internal libraries
add_subdirectory(tpm)
add_subdirectory(mtm)
add_subdirectory(crypto)
# add TDDL
add_subdirectory(tddl)
# add kernel modules
add_subdirectory(tpmd_dev)
# add executables
add_subdirectory(tpmd)
@ダン・シェプラー - ありがとう。ソースを削除し、再度解凍しました。今、私は次のように別のメッセージを受け取ります:
$ cmake ../
-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:6 (project):
The CMAKE_C_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
-- Configuring incomplete, errors occurred!
See also "C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build/CMakeFiles/CMakeError.log".
Given that I have installed MinGw. I believe I have to set my compiler as gcc. And I believe this would be my path
C:\MinGW\bin
これら 2 つのコマンドを実行して、環境変数を既知のコンパイラのパスに設定しましたが、それでもエラーが発生します。C:\MinGw\bin に gcc.exe がありました。gcc.exe の名前を環境変数パスに追加してみます。
set CC=C:\MinGW\bin
set CMAKE_C_COMPILER=C:\MinGW\bin
ビルドディレクトリで変更する必要がある変数を見つけて変更しました。今それは言う
$ cmake ../
-- The C compiler identification is GNU 4.9.3
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_5e307\fast"
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.5/Modules/CMakeTestCCompiler.cmake:61 (message):
The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test
program.
It fails with the following output:
Change Dir: C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build/CMakeFiles/CMakeTmp
Run Build Command:"nmake" "/NOLOGO" "cmTC_5e307\fast"
Generator: execution of make failed. Make command was: "nmake" "/NOLOGO"
"cmTC_5e307\fast"
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
CMakeLists.txt:6 (project)
-- Configuring incomplete, errors occurred!
See also "C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build/CMakeFiles/CMakeError.log".
このリンクを見つけて、Windows 10 でパス変数を確認しました。実際にユーザー パスを追加する必要がありました。システムパスがありました。MInGw\bin、msys\bin、msys\local\bin、および cmake をパスに入れました。
今回はそれが功を奏したと思います。私がしたこと MinGwシェルではなく、管理モードで実行されているcmdを使用しました。これが出力です...
C:\Users\sansari\Downloads\tpm_emulator-0.7.4\tpm_emulator-0.7.4\build>cmake ../
-- The C compiler identification is GNU 4.9.3
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/sansari/Downloads/tpm_emulator-0.7.4/tpm_emulator-0.7.4/build