2014-01-22 72 views

回答

1

您可以使用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}") 
+0

我已經QtEnvVar宣佈在我的電腦指向「C:/ QT」。然後,我有兩個子目錄,「x86」和「x64」。所以,如果檢測到64位體系結構,我想將QtEnvVar更新爲c:/ Qt/x64;如果是32位體系結構,我想將QtEnvVar更新爲c:/ Qt/x86。所以,我嘗試了你的建議,但它似乎沒有覆蓋QtEnvVar – thestar

+0

@Sunny我已經更新了我的答案,以更具體一些你的用例。如果這仍然沒有幫助,您可能最好向我們展示一個示例CMakeLists.txt,您遇到問題。 – Fraser