Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с MSVS 2008
Форум на CrossPlatform.RU > Разработка > Инструменты разработчика
Анна
Так уж получилось, что сменила место работы не выходя из кабинета. Думала, пока купят новый комп, порезвлюсь на старом - то поставила, сё поставила, что-то потом вынесла... После "развлечений" перестал адекватно работать MSVS 2008. Конкретно, при сборке постоянно выдаёт ошибки PRJ0003 - не смог запустить cmd.exe (в чём проблема, нашла, но для устранения каждый раз приходится вручную исправлять пути в проекте), при запуске под средой не находит MSVCR90D.DLL. Переустановка среды не помогла. Каждый новый проект всё повторяется сначала.
Понятно, что где-то внутри настроек среды что-то пропало, но как это что-то восстановить, не известно.
Может, кто знает глобальное решение?
Iron Bug
Пропиши пути поиска в настройках:
https://forum.megaglest.org/index.php?topic=7162.0

Хотя очень странно: как они могли слететь? Это надо грохнуть профиль юзера или что-то типа того.
Анна
Цитата(Iron Bug @ 14.3.2014, 10:58) *
Пропиши пути поиска в настройках:
https://forum.megaglest.org/index.php?topic=7162.0

Хотя очень странно: как они могли слететь? Это надо грохнуть профиль юзера или что-то типа того.

Вот как раз эту ссылку я и нашла. Так и делаю. Обнаружила, что после перезапуска среды во вкладке с директориями для VC++ везде стоит не $(SystemRoot) , хотя именно такой вариант я добавляла, а %SystemRoot% - как указано в PATH. И снова вылезает ошибка 0003 - не найден путь. Выходит, настройки не сохраняются...

В винде я заметила, что SET в начале списка переменных стала выдавать строчки типа:
=::=::\
=D:=D:\WINDOWS... (последние каталоги, которые я открывала).

Раньше такого не было. И что за процесс так резвится тоже не могу определить.
Анна
Столкнулась с ошибкой:
fatal error LNK1104: cannot open file 'kernel32.lib'

Нашла подобное здесь

В самом конце обсуждения Executor приводит кусок кода из вижуаловского батника:
Цитата
Я думаю надо покопаться в этом файлике "C:\Program Files\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
Там есть такая штука:

:GetWindowsSdkDir
@call :GetWindowsSdkDirHelper HKLM > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1
@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\
@exit /B 0

:GetWindowsSdkDirHelper
@for /F "tokens=1,2*" %%i in ('reg query "%1\SOFTWARE\Microsoft\Microsoft SDKs\Windows" /v "CurrentInstallFolder"') DO (
  if "%%i"=="CurrentInstallFolder" (
    SET "WindowsSdkDir=%%k"
  )
)
@if "%WindowsSdkDir%"=="" exit /B 1
@exit /B 0



У тебя как раз срабатывает строка
@if errorlevel 1 set WindowsSdkDir=%VCINSTALLDIR%\PlatformSDK\
как я понял...
Что за errorlevel и почему он равен 1 фз...

Стала разбираться. И обнаружила такую вещь: если заменить строки
@call :GetWindowsSdkDirHelper HKLM > nul 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > nul 2>&1
на
@call :GetWindowsSdkDirHelper HKLM > 1 2>&1
@if errorlevel 1 call :GetWindowsSdkDirHelper HKCU > 1 2>&1

то в файлике "1" мы обнаружим сообщение, что нет такой команды "reg"... ??? Винда не понимает, что команда может состоять из двух слов?
Iron Bug
по-моему, проще завести на машине ещё одного "чистого" юзера, скопировать его настройки, касающиеся студии, к себе и попробовать эту конфигурацию донастроить. косяки венды, когда у неё начинаются внутренние проблемы, сложны для понимания и исправлять их вручную - занятие неблагодарное.
Анна
Проблема была решена.
Сначала обратила внимание, что в PATH значение, например, %QTDIR% прописывается как путь до куты, а значение %SystemRoot% так и пишется - %SystemRoot%. Соответственно и в настройках каталогов VC стоит %SystemRoot%, %SystemRoot%\system32, %SystemRoot%\system32\Wbem, чего среда искренне не понимает (приходилось вручную исправлять везде на $(SystemRoot)). Из-за этого сыпались ошибки типа "не смогла запустить cmd.exe". Из-за этого не отрабатывал reg query в батнике.
Здесь нашла решение проблемы. Только автор забыл добавить, что после всех преобразований в реестре винде надо дать волшебного пинка в виде перезагрузки.
В двух словах: после очередной установки чего-то у переменной среды Path вместо типа REG_EXPAND_SZ стал тип REG_SZ. Исправляем эту несправедливость, и всё начинает работать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.