с++ почему студия меняет об\ектники?
Исходники не меняются. Билдим проэкт - об\ектники меняются!
Можно ли заставить Визуал студию генерить один и тот же код (т.е. чтобы обж файлы генерились бинарно одинаковые при неизменных исходниках?
Почему спрашиваю.
Некой удаленной фирме, которая на нас работает, мы не даем исходников некоторых файлов (блокируем доступ в SVN), а даем лишь об\ектники, которые они линкуют с остальным проэктом.
Посему хотелось бы эти об\ектники положить прямо в SVN рэпозиторию. Пусть они у нас каждый раз билдятся, а коммитить мы их будем только в том случае ежели они реально (а не по прихоти ВисуалСнудии) поменялись.
Но ВизуалСтудия меняет их с каждым билдом.
Можно ли заставить Визуал студию генерить один и тот же код (т.е. чтобы обж файлы генерились бинарно одинаковые при неизменных исходниках?
-----
Вопрос не правильно поставлен.
Правильный вопрос - Как заставить Студию не ре-компилировать исходники если не было изменений.
Ответов два:
Провильный - Найти в *.тагетсах часть отвечающую за построение списка и поменять так как надо - чтобы неизменные файлы не перекомпилировались.
Частичный - Засунь проект с проблемными файлами в "Нев Солутион Фолдер" - Студия будет его компилировать только при полном ребуилде.
П.С. Собери объектники в библиотеку (ЛИБ, не ДЛЛ) и коммить ее. Туда можно добавить "левую" инфу...
Найти в *.тагетсаха что это за файл? Я искал эксплорером *.*tag* , но ни одного не нашел (разве что *.metagen какие-то, но их мало, даже не для каждого проекта)
Частичный - Засунь проект с проблемными файлами в "Нев Солутион Фолдер" - Студия будет его компилировать только при полном ребуилде.тут чего-то не то. Студия вообще не компилирует спп файлы которые не в проэкте (а в НьюСолюшинФолдере).
Собери объектники в библиотеку (ЛИБ, не ДЛЛ) и коммить ее.А толку? Думаешь что lib будет всегда одинакова после каждого билда неизмененных исходников?
ЗЫ. НП.
Там еще есть одна заморочка.
Эти "секретные" файлы не независимые, а используют какие-то интерфейсы, которые имплементированны где-то в другом месте (может даже в другом проекте).
Что получилось:
- я поменял один из интерфейсов (добавил функцию, не в конец, а рядом с другими функциями по-смыслу)
- таблица виртуальных методов сместилась, понятно
- а значит ВСЕ пользователи интерфейса должны быть перекомпилированны
- как результат у той фирмы, что имеет лишь об\ектники - вылет
Так что вот думаю как избежать подобного в будущем?...
а что это за файл?
-----
*.targets
- аналог маке-файла описывающий процесс построения проекта.
не компилирует спп файлы которые не в проэкте
-----
Хммм... пора учится читать... бо, об спп Я ничего не писал...
lib будет всегда
-----
с либом проще.
Так что вот думаю как избежать подобного в будущем?...
-----
Либу обновить... любым доступным способом... хоть по ФТП в таргетсе...
Отдельные файлы - много писанины, одну либу - без проблем.
*.targets - аналог маке-файла описывающий процесс построения проекта.таких тоже нет
Хммм... пора учится читать... бо, об спп Я ничего не писал...пора. хотя бы название темы
Отдельные файлы - много писанины, одну либу - без проблем.если руками и своим вниманием: тоже самое. тут задача чтобы автоматизировать хотя бы факт что надо обновить
-----
У меня на диске С:\ 729 штук...
пора.
-----
Ну так ЧИТАЙ. Не думай, а ЧИТАЙ.
тут задача чтобы автоматизировать
-----
Угу... по-хорошему надо писать новую задачу для Мэйка и добавлять в используемый таргетс.
Могу сказать, что там не сложно - Я смотрел примеры, но сам не делал.
Да, вспомнил. Хотя и не по плюсам, а по шарпу, но похожее...
Когда лепятся плугины там получается либо выделенная либа для интерфейсов, либо циклическая ссылка.
Решается лепкой ДЛЛки и подсовыванием оной, а не проекта, в проект плугиноv.