這兩天在windows7下面編譯tpm20lib的時候,(tpm20lib地址在此:點擊打開鏈接)
按照源碼下面的Readme.docx文件的介紹,
配置TSSTOOLS_PATH環境變量,結果最後還是報錯,
NMAKE : fatal error U1077: “"C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\BIN\vc\bin\nmake.exe"”: return “0x1”
......
仔細看上面的輸出,發現居然是: Microsoft Visual Studio 11.0\VC\BIN\vc\bin\nmake.exe
兩層的vc\bin,媽蛋,什麼鬼?
打開源碼裏面的makefile,加幾行代碼,ECHO出來裏面的一些變量,發現也有類似的vc\bin\vc\bin或者vc\bin\vc\include的路徑。
於是,修改環境變量,computer -> properties -> advanced systerm setting -> environment varibles -> TSSTOOLS_PATH,
改成:C:\Program Files (x86)\Microsoft Visual Studio 11.0
再試,還是不行,繼續仔細研究vs2012裏面的錯誤輸出信息,有這麼詭異的一行:
'C:\Program' is not recognized as an internal or external command...............
原來是文件夾名字裏面的空格搗的鬼,於是,用subst這個命令來解決。
subst k: C:\Program Files (x86)\Microsoft Visual Studio 11.0
subst這個命令,可以將指定的路徑映射成一個虛擬的盤符,這裏,我就把vs2012的安裝路徑映射成k盤了
刪除只需要 subst k: /d 就行了
然後再把TSSTOOLS_PATH設置爲 k:
一切搞定,重新build,還是同樣的錯誤,於是懷疑是不是環境變量設的不好,於是用那個源碼裏面的Readme.docx裏說的set命令來搞,
set TSSTOOLS_PATH="C:\Program Files (x86)\Microsoft Visual Studio 11.0"
額外說點兒,set設置的只是一個臨時的值,只在當前所運行set的cmd窗口有效,
查看所有的環境變量就直接敲set就行了,
設定就是 set myVal=“xxxxxx”
刪除就是 set myVal=
後面啥也別跟
結果set設定的也沒鳥用,最後不折騰了,繼續在computer -> properties -> advanced systerm setting -> environment varibles -> TSSTOOLS_PATH
裏面來設置。
懷疑是因爲vs2012太遲鈍,沒有及時刷新,於是退出vs2012再重新打開重新編譯,成功。
綜上,vs2012只是在初次啓動的時候纔會去掃面檢查系統變量,一旦啓動後,更改系統變量對它無效,必須重啓IDE。