Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 04.01.10 16:09
Оценка:
Как заставить VS сваливать obj файлы в разные директории, в соответствии с либо исходной структурой директориев исходников, либо со структурой фолдеров в проекте. Пока что я не сумел заставить нормально компилировать проекты, в котором есть cpp файлы с одинаковыми именами, но в разных директориях. Компилятор просто валит все в одну кучу, в результате получается лажа. Что за допотопный идиотизм?! 2010 год на дворе!
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Одинаковые имена .cpp в Visual Studio 2005/2008
От: Cyberax Марс  
Дата: 04.01.10 16:19
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Как заставить VS сваливать obj файлы в разные директории, в соответствии с либо исходной структурой директориев исходников, либо со структурой фолдеров в проекте.

Никак. Самый правильный вариант — перейти на нормальную систему сборки, а не VS-ное убожество (я предпочитаю CMake).

Второй вариант — вручную прописать имя obj-файла в свойствах cpp-файла.
Sapienti sat!
Re: Одинаковые имена .cpp в Visual Studio 2005/2008
От: . Великобритания  
Дата: 04.01.10 17:30
Оценка:
On 04/01/2010 18:09, McSeem2 wrote:


> но в разных директориях. Компилятор просто валит все в одну кучу, в

> результате получается лажа. Что за допотопный идиотизм?! 2010 год на дворе!
Странно. По крайней мере MSVS2003 их сваливает в одну кучу, но имена даёт разные, с цифровым постфиксом File.obj, File1.obj и т.п.
Posted via RSDN NNTP Server 2.1 beta
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Re: Одинаковые имена .cpp в Visual Studio 2005/2008
От: Аноним  
Дата: 04.01.10 20:31
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Что за допотопный идиотизм?! 2010 год на дворе!


Извесный баг VS 2005/2008
Не уверен, что он был раньше.
Re[2]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 06.01.10 17:34
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Извесный баг VS 2005/2008

А>Не уверен, что он был раньше.

А можно подробнее? Конда он проявляется? На простом проекте мне не удалось воспроизвести ситуацию — именует File.obj, File1.obj, etc. Но на сложном однажды возник fail.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: SleepyDrago Украина  
Дата: 06.01.10 18:08
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, Аноним, Вы писали:


А>>Извесный баг VS 2005/2008

А>>Не уверен, что он был раньше.

MS>А можно подробнее? Конда он проявляется? На простом проекте мне не удалось воспроизвести ситуацию — именует File.obj, File1.obj, etc. Но на сложном однажды возник fail.

В проекте случайно результаты конверсии с предыдущих версий не остались? Если на чистом маленьком не повторяется, то надо текстовым редактором ссылки на унаследованные vsprops прибить и будет как новый.

зы вот кто бы мне как такое победить для out of source билда под линукс описал ...
Re[4]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 06.01.10 20:00
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>В проекте случайно результаты конверсии с предыдущих версий не остались? Если на чистом маленьком не повторяется, то надо текстовым редактором ссылки на унаследованные vsprops прибить и будет как новый.


Нет такого слова. Что такое vsprops?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 06.01.10 20:28
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Нет такого слова. Что такое vsprops?


Файлы настроек.
[КУ] оккупировала армия.
Re[6]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 06.01.10 20:29
Оценка:
Здравствуйте, koandrew, Вы писали:

MS>>Нет такого слова. Что такое vsprops?


K>Файлы настроек.


Спасибо. А что это за файлы и где они находятся?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[7]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: SleepyDrago Украина  
Дата: 07.01.10 11:04
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, koandrew, Вы писали:


MS>>>Нет такого слова. Что такое vsprops?


K>>Файлы настроек.


MS>Спасибо. А что это за файлы и где они находятся?

Имелось ввиду не удалить сами файлы — они системные и пусть себе будут.
А удалить на них ссылки из тушки проекта. При апгрейде с предыдущих версий в файлах проекта появляются дополнительные ссылки на *Upgrade.vsprops (точно не помню — их легко узнать если перед этим заглянуть в текст чистого проекта). Они вешаются на каждую конфигурацию если мне не изменяет память — так что удалять все вхождения. Опять же это может быть магия на уровне самой студии — то есть в новом добавляете и оно определяет что такой уже был и нумерует — тогда импорт старых не сработает.
Re[8]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 07.01.10 23:03
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>А удалить на них ссылки из тушки проекта. При апгрейде с предыдущих версий в файлах проекта появляются дополнительные ссылки на *Upgrade.vsprops (точно не помню — их легко узнать если перед этим заглянуть в текст чистого проекта). Они вешаются на каждую конфигурацию если мне не изменяет память — так что удалять все вхождения. Опять же это может быть магия на уровне самой студии — то есть в новом добавляете и оно определяет что такой уже был и нумерует — тогда импорт старых не сработает.


Не помогает. Я даже пересоздал проект с нуля. Берет тот файл, который был первым добавлен в проект. Более того — удаляем все .obj, явно компилируем один файл, добавленный последним — компилирует тот, который был добавлен первым. Глюкота.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[2]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: michus Россия  
Дата: 12.01.10 00:37
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Здравствуйте, McSeem2, Вы писали:


MS>>Что за допотопный идиотизм?! 2010 год на дворе!


А>Извесный баг VS 2005/2008

А>Не уверен, что он был раньше.

По моим наблюдениям, начал проявляться в VS2008. В VS2005 такого не наблюдалось.
Пришлось даже утилиту написать для подправки файлов проектов, чтобы она повторяла функционал VS2005.
... << RSDN@Home 1.2.0 alpha 4 rev. 1110>>
Re: Одинаковые имена .cpp в Visual Studio 2005/2008
От: yatagarasu Беларусь  
Дата: 12.01.10 12:07
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Как заставить VS сваливать obj файлы в разные директории, в соответствии с либо исходной структурой директориев исходников, либо со структурой фолдеров в проекте. Пока что я не сумел заставить нормально компилировать проекты, в котором есть cpp файлы с одинаковыми именами, но в разных директориях. Компилятор просто валит все в одну кучу, в результате получается лажа. Что за допотопный идиотизм?! 2010 год на дворе!


У каждого .cpp в пропертях можно прописать в какой .obj файл его билдить. Обычно студия сама расписывает им разные имена. но видимо иногда бывает феил.
vcproj — простой xml так что можно его и руками поковырять если что )
Re[2]: Одинаковые имена .cpp в Visual Studio 2005/2008
От: McSeem2 США http://www.antigrain.com
Дата: 12.01.10 16:20
Оценка:
Здравствуйте, yatagarasu, Вы писали:

Y>У каждого .cpp в пропертях можно прописать в какой .obj файл его билдить. Обычно студия сама расписывает им разные имена. но видимо иногда бывает феил.

Y>vcproj — простой xml так что можно его и руками поковырять если что )

Нет уж, проще оказалось все переименовать и дать файлам префиксы, чтобы не дублировались имена. К тому же, мы делаем библиотеку и многие клиенты покупают ее с full source. Так вот, они, как правило строят свои проекты, просто включая наши файлы. Их что, тоже заставлять поковырять?

Проблема решалась бы тривиально, если бы в Intermediate Directory можно было бы указать что-то типа $(ConfigurationName)\$(ParentDir). Я попробовал. Да, действительно, внутри "Release" создаются директории с именами как в Solution Explorer. Но они остаются пустыми, а компилятор все равно валит все в одну кучу. Самое смешное, что линкер потом пытается искать файлы не в этой куче, а в указанных директориях. И соответственно, съедает конфетку обломиську. Так и живем с этой глюкотой.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.