Синхронизация проекта Visual Studio Makefile - PullRequest
3 голосов
/ 29 сентября 2010

Я унаследовал некоторый код C99, который планирую использовать повторно в решении, ориентированном на C ++. К сожалению, даже последний компилятор Microsoft практически не поддерживает нетривиальные функции C99.

Код, о котором идет речь, был проверен до смерти, и я бы не стал переписывать его на C ++. Это означает, что для повторного использования кода мне придется полагаться на соответствующий сторонний компилятор.

После осмотра кажется, что самый хороший способ для меня интегрировать этот код - это добавить "Makefile Project" в мое решение. Только одна проблема. Похоже, что теперь я несу ответственность за синхронизацию свойства «Build Command Line» с файлами, которые я добавляю в проект через Visual Studio.

На первый взгляд, я не смог найти способ получить список файлов в моем проекте через обычные макросы в стиле Visual Studio $ (). Я всегда мог написать сценарий оболочки, который бы перечислял файлы * .c в моем исходном дереве и передавал их пути стороннему компилятору. Тем не менее, я ожидал, что Visual Studio выполнит хотя бы эту часть работы за меня, поскольку она уже имеет эту информацию в соответствующем файле * .vc ​​[x] proj.

Маловероятно, что мне понадобится добавлять какие-либо новые исходные файлы в этот проект, но, тем не менее, ручная синхронизация (т.е. без сценария) такого рода кажется мне довольно хрупкой.

Какие у меня есть варианты, кроме написания вспомогательного скрипта?

1 Ответ

2 голосов
/ 29 сентября 2010

От Ханс Пассант :

«Проект Makefile» означает, что он говорит, что должен быть другой «агент», который отвечает за зависимости.Как сделать файл.Файлы правил могут помочь вам выбрать другой инструмент для сборки, но в VS2010 он немного не работает.Используйте оригинальный инструмент, который создал этот код C99, запустите его из проекта makefile.

...