0
如果檢測到64位體系結構,我想在我的CMakeLists.txt中覆蓋「qt's」環境變量。 我該怎麼做? 任何幫助表示讚賞!CMake中的覆蓋環境變量
如果檢測到64位體系結構,我想在我的CMakeLists.txt中覆蓋「qt's」環境變量。 我該怎麼做? 任何幫助表示讚賞!CMake中的覆蓋環境變量
您可以使用set
來替換環境變量的值,而檢測64位架構的常見方法是使用CMAKE_SIZEOF_VOID_P
。
因此,例如追加/x64
或/x86
到環境變量QtEnvVar
,你會怎麼做:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(EnvVarSetter)
message(STATUS "CMAKE_SIZEOF_VOID_P: ${CMAKE_SIZEOF_VOID_P}")
message(STATUS "QtEnvVar before: $ENV{QtEnvVar}")
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(ENV{QtEnvVar} "$ENV{QtEnvVar}/x64")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(ENV{QtEnvVar} "$ENV{QtEnvVar}/x86")
else()
message(FATAL_ERROR "Unknown void* size.")
endif()
message(STATUS "QtEnvVar after: $ENV{QtEnvVar}")
我已經QtEnvVar宣佈在我的電腦指向「C:/ QT」。然後,我有兩個子目錄,「x86」和「x64」。所以,如果檢測到64位體系結構,我想將QtEnvVar更新爲c:/ Qt/x64;如果是32位體系結構,我想將QtEnvVar更新爲c:/ Qt/x86。所以,我嘗試了你的建議,但它似乎沒有覆蓋QtEnvVar – thestar
@Sunny我已經更新了我的答案,以更具體一些你的用例。如果這仍然沒有幫助,您可能最好向我們展示一個示例CMakeLists.txt,您遇到問題。 – Fraser