WindowsSdkDir для каждого проекта?

У меня есть библиотека Visual C++, которую я хочу скомпилировать для определенной платформы (я пытаюсь скомпилировать POCO для платформы Win CE ARM, но это может не иметь отношения к этому вопросу). У меня есть SDK Windows CE для конкретного поставщика (включая все распространенные файлы Windows, например winbase.h), который установлен в качестве целевой платформы в файлах проекта Visual Studio. Однако, когда я компилирую программу, я вижу из журнала ошибок, что используется Windows 6.0A SDK по умолчанию, что приводит к множеству ошибок компиляции.

Я предполагаю, что WindowsSdkDir ist не установлен соответствующим образом - я думал, что это будет автоматически переопределено при настройке целевой платформы в Visual Studio.

Итак, мой вопрос: могу ли я явно изменить WindowsSdkDir для одного проекта?

заранее спасибо


person mbue    schedule 06.06.2013    source источник
comment
Был ли проект библиотеки изначально создан для нужного SDK? Если нет, создайте новый файл проекта и добавьте существующие все исходные файлы. Studio действительно очень плоха при попытке добавить новый SDK/платформу в существующий проект.   -  person ctacke    schedule 12.06.2013


Ответы (1)


Какая версия CE, какая версия VS и какая версия Windows? Я знаю, что у меня были проблемы с установкой SDK CE5 и/или CE6 и их распознаванием Visual Studio 2005, работающим в Windows 7 (64-разрядная версия). Я не помню точных симптомов и исправлений, но вы можете проверить это, просто создав проект смарт-устройства для целевого SDK.

Если проблема не в этом, существует также ловушка с целью как в файле проекта (.vcproj), так и в решении (.sln). Вы можете изменять оба независимо друг от друга, вплоть до того момента, когда вы скомпилируете отладочную версию x64 проекта в выпускной версии решения для win32. Убедитесь, что эти настройки совпадают.

Затем, если вы настроите файл .vcproj для использования вашей целевой платформы (для чего я лично использовал бы текстовый редактор), все должно работать. Если вам нужно настроить сборку или некоторые пути, вы иногда можете обойтись, например, $(Platform) в настройках компилятора/компоновщика.

Наконец, если все это не работает, есть листы свойств, в которых можно настроить определенные параметры. Затем вы создаете лист свойств один раз, а затем загружаете его в проект, который хотите скомпилировать. Я не уверен, что вы можете изменить целевую платформу или пути SDK при таком подходе, и я лучше попытаюсь выяснить, почему SDK не работает и как его исправить.

person Ulrich Eckhardt    schedule 11.06.2013
comment
Спасибо за ваш ответ. Теперь все работает нормально, хотя я не мог решить проблему, собирая из командной строки. Но когда я строю в Visual Studio, это работает. - person mbue; 13.06.2013