0

私は自分のメイクファイルを生成するために使用し、次に をチェックしcmakeたいのですが、デフォルトが私の?として表示されている理由がわかりません。CMAKE_INSTALL_PREFIXccmake .ccmake ./usr/localCMAKE_INSTALL_PREFIX

MESSAGE出力とmake install両方が正しく設定されていることを示していますが、なぜCMAKE_INSTALL_PREFIX間違っccmakeた情報を提供しているのか疑問に思っています。何か案は?

cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR)

PROJECT(ddd)
SET(CMAKE_INSTALL_PREFIX "/home/bin")
MESSAGE ("CMAKE_INSTALL_PREFIX = ${CMAKE_INSTALL_PREFIX}")
add_executable(ddd MACOSX_BUNDLE ddd.CPP)
set_property(TARGET ddd PROPERTY INSTALL_RPATH_USE_LINK_PATH TRUE)
INSTALL(TARGETS ddd DESTINATION .)
4

1 に答える 1

1

によって表示される値ccmakeは、 に格納されている CMake キャッシュからの値CMakeCache.txtです。メッセージ呼び出しによって表示される値は、1 行前に設定したローカル変数CMAKE_INSTALL_PREFIXの値であり、同じ名前のキャッシュされた値を隠します。

代わりにキャッシュされた値を変更する場合は、代わりに強制セットを使用します。

set(CMAKE_INSTALL_PREFIX "/home/bin" CACHE PATH "" FORCE)

一般に、これらの値を CMakeLists 内から変更することはお勧めできません。ユーザーがデフォルト構成を変更しようとしても無効になるためです。この変更の特定のケースではCMAKE_INSTALL_PREFIX、Windows プラットフォームでビルドを壊す可能性もあります。

于 2013-10-15T15:07:34.273 に答える