jsoncpp на vc90?
У кого-нибудь есть jsoncpp, работающий на vc90?
они используют систему сборки Scons, о которой я никогда не слышал. Я установил последние Scons, нашел недокументированный файл scons.bat, запустил приглашение vc90 в моем каталоге jsoncpp, изменил файл 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 явно не поддерживается, поэтому я сейчас сдаюсь.
5 ответов
Нет необходимости использовать Scons.
В / makefiles / vc71/ вы можете найти решение для Visual Studio, которое вы можете конвертировать и создавать.
Вы уверены, что ваша командная строка VS работает правильно? Я заставил его работать, просто: - добавив запись msvc90 в allow_values - скопируйте / вставив раздел msvc80 позже и изменив его для использования env['MSVS_VERSION'] = 9.0
Я использую scons 1.3.0.
Начиная с версии 0.6.0 jsoncpp, вы можете избежать многих хлопот, используя новую объединенную версию. Это всего два файла.h и один файл.cpp, которые вы компилируете непосредственно в свои проекты. До сих пор он отлично работал для меня в VS 9 (и с несколькими модами теперь я могу скомпилировать его и в C++Builder 2010 - пока еще не проверил результат).
Кстати, я подал ошибку в версии 0.6.0-rc2; одна строка в объединенной версии json.h
необходимо изменить имя макроса.
Измените файл платформы msvc90, чтобы убедиться, что каталоги VC90 используются при вызове cl (ясно, что это не так в предоставленной вами командной строке).
Обратите внимание, что Scons написан с использованием Python, как и его конфигурационные файлы, поэтому люди, которые знают Python вокруг вас, могут помочь вам эффективно, даже если они ничего не знают о scons.
Настройка scons для jsoncpp 0.5.0 не поддерживает VS 9.0 или 10.0 из коробки. Сначала вам нужно добавить msvc90 в значение allow_values в строке 21 SConstruct, а в строку 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.