2010-11-08 55 views
3

任何人都有jsoncpp在vc90上工作?vc90上的jsoncpp?

他們使用構建系統Scons,我從來沒有聽說過。我安裝了最新的Scons,發現了一個未公開的scons.bat,在我的jsoncpp目錄中啓動了vc90提示符,修改了SConstruct文件以支持msvc90目標(我從已經支持的msvc80平臺拷貝了樣板文件)運行了scons.bat platform=msvc90, :

scons: done reading SConscript files. 
scons: Building targets ... 
cl /Fobuildscons\msvc90\src\jsontestrunner\main.obj /c src\jsontestrunner\main.c 
pp -GR -EHsc /nologo /MT /nologo /Iinclude /I. 
main.cpp 
c:\projects\docwayhead\wspt_docway_plugins\contrib\jsoncpp-src-0.5.0\include\jso 
n\value.h(5) : fatal error C1083: Cannot open include file: 'string': No such fi 
le or directory 
scons: *** [buildscons\msvc90\src\jsontestrunner\main.obj] Error 2 
scons: building terminated because of errors. 

我已經把過多的精力投入到得到這個構建和jsoncpp顯然是無人維護,所以我放棄了。

回答

0

修改msvc90平臺文件以確保在調用cl時使用VC90 include目錄(顯然,在您提供的命令行中還沒有這種情況)。

請注意,Scons是使用Python編寫的,所以它的配置文件也是如此,所以認識Python周圍的人可能能夠有效地幫助你,即使他們對scons一無所知。

4

無需使用Scons。

根據/makefiles/vc71 /您可以找到一個可以升級轉換和構建的visual studio解決方案。

+0

它不適用於我我收到一條錯誤消息:'無法啓動程序'C:\ myjsoncpp_location \ Makefiles \ vs71 ..../debug \ lib_json \ lib_json.ib' – 2014-06-05 16:31:03

0

你確定你的VS命令行工作正常嗎?我得到了它只是工作: - 添加在allowed_values一個msvc90進入 - 複製/粘貼msvc80節後面並修改它使用ENV [「MSVS_VERSION」] = 9.0

我使用scons的1.3.0 。

0

jsoncpp 0.5.0的scons設置不支持VS 9.0或10.0開箱即用。您需要在SConstruct線21先添加msvc90到allowed_values,和對線路103添加此部分

elif platform == 'msvc90': 
    env['MSVS_VERSION']='9.0' 
    for tool in ['msvc', 'msvs', 'mslink', 'masm', 'mslib']: 
     env.Tool(tool) 
    env['CXXFLAGS']='-GR -EHsc /nologo /MT' 

只是10.0和90與100 VS 10.0支持更換9.0。

0

從jsoncpp版本0.6.0開始,通過使用新的Amalgamated版本可以避免很多麻煩。這只是兩個.h文件和一個直接編譯到項目中的.cpp文件。目前爲止,它在VS 9中非常有用(還有一些mod,現在我可以用C++ Builder 2010編譯它 - 還沒有真正測試過結果)。

順便說一下,我已經提交了一個針對版本0.6.0-rc2的bug; json.h的合併版本中的一行需要更改宏名稱。