【问题标题】:jsoncpp on vc90?vc90上的jsoncpp?
【发布时间】:2010-11-08 16:20:24
【问题描述】:

有人有jsoncpp 正在开发 vc90 吗?

他们使用我从未听说过的构建系统 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 显然没有维护,所以我现在放弃了。

【问题讨论】:

    标签: c++ visual-studio-2008 scons vc90 jsoncpp


    【解决方案1】:

    无需使用 Scons。

    /makefiles/vc71/ 下,您可以找到可以向上转换和构建的 Visual Studio 解决方案。

    【讨论】:

    • 它对我不起作用我收到一条错误消息:'无法启动程序'C:\myjsoncpp_location\Makefiles\vs71..../debug\lib_json\lib_json.ib'跨度>
    【解决方案2】:

    修改 msvc90 平台文件以确保在调用 cl 时使用 VC90 包含目录(在您提供的提供的命令行中显然还不是这种情况)。

    请注意,Scons 是使用 Python 编写的,其配置文件也是如此,因此您周围了解 Python 的人可能能够有效地帮助您,即使他们对 scons 一无所知。

    【讨论】:

      【解决方案3】:

      你确定你的 VS 命令行工作正常吗?我只是通过以下方式让它工作: - 在 allowed_values 中添加 msvc90 条目 - 稍后复制/粘贴 msvc80 部分并将其修改为使用 env['MSVS_VERSION'] = 9.0

      我正在使用 scons 1.3.0。

      【讨论】:

        【解决方案4】:

        jsoncpp 0.5.0 的 scons 设置不支持开箱即用的 VS 9.0 或 10.0。您需要先将 msvc90 添加到 SConstruct 第 21 行的 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'
        

        只需将 9.0 替换为 10.0 并将 90 替换为 100 即可获得 VS 10.0 支持。

        【讨论】:

          【解决方案5】:

          从 jsoncpp 0.6.0 版开始,您可以通过使用新的 Amalgamated 版本来避免很多麻烦。这只是您直接编译到项目中的两个 .h 文件和一个 .cpp 文件。到目前为止,它在 VS 9 中对我来说效果很好(并且通过一些模块,我现在也可以使用 C++Builder 2010 编译它——还没有真正测试过结果)。

          顺便说一句,我已经针对 0.6.0-rc2 版本提交了一个错误; json.h 的合并版本中的一行需要更改宏名称。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-11-21
            • 1970-01-01
            相关资源
            最近更新 更多