3

jsoncppがvc90で動作している人はいますか?

彼らは、私が聞いたことのないビルド システム Scons を使用しています。最新の Scons をインストールし、文書化されていない scons.bat を見つけ、jsoncpp ディレクトリで vc90 プロンプトを起動し、msvc90 ターゲットをサポートするように SConstruct ファイルを変更しました (既にサポートされている 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 は明らかにメンテナンスされていないので、今のところあきらめます。

4

5 に答える 5

4

Sconsを使用する必要はありません。

/makefiles/vc71 /の下に、アップ コンバートしてビルドできるビジュアル スタジオ ソリューションがあります。

于 2010-11-25T21:57:43.977 に答える
0

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'

VS 10.0 をサポートするには、9.0 を 10.0 に、90 を 100 に置き換えるだけです。

于 2011-04-05T08:18:05.220 に答える
0

jsoncpp のバージョン 0.6.0 の時点で、新しい Amalgamated バージョンを使用することで、多くの手間を省くことができます。これは、プロジェクトに直接コンパイルする 2 つの .h ファイルと 1 つの .cpp ファイルです。これまでのところ、VS 9 でうまく機能しています (いくつかのモッドを使用すると、C++Builder 2010 でもコンパイルできるようになりました。まだ結果を実際にテストしていません)。

ところで、私はバージョン 0.6.0-rc2 に対してバグを報告しました。Amalgamated バージョンの 1 行で、json.hマクロ名を変更する必要があります。

于 2011-06-10T21:12:59.350 に答える
0

msvc90 プラットフォーム ファイルを変更して、cl を呼び出すときに VC90 のインクルード ディレクトリが使用されるようにします (提供したコマンド ラインではまだそうではありません)。

Scons は Python を使用して作成されており、その構成ファイルも Python を使用して作成されていることに注意してください。そのため、Python を知っている人は、scons について何も知らなくても、効率的に助けてくれる可能性があります。

于 2010-11-08T16:57:26.240 に答える
0

VS コマンド ラインが正常に動作していることを確認してください。- allowed_values に msvc90 エントリを追加 - 後で msvc80 セクションをコピー/貼り付け、env['MSVS_VERSION'] = 9.0 を使用するように変更

私はscons 1.3.0を使用しています。

于 2010-11-26T21:27:46.317 に答える