В настоящее время я пытаюсь выяснить, возможно ли для двух разных нативных проектов Visual-C ++ (с одинаковыми настройками компилятора) делиться своими промежуточными файлами (obj, pch, ...)
Пример должен помочь:
Это нормальная установка:
PROJECTS \ P1 \ p1.vcproj; p1.cpp; ...
\ Release_Intermediate_Dir \ p1.obj
\ tool1.obj
\ P2 \ p2.vcproj; p2.cpp; ...
\ Release_Intermediate_Dir \ p2.obj
\ tool1.obj
\ COMMON \ tool1.cpp; ...
Что насчет этой настройки:
PROJECTS \ P1 \ p1.vcproj (uses: p1.cpp; p1_main.cpp)
\ p1_test.vcproj (uses: p1.cpp; p1_test.cpp)
\ Release_Intermediate_Dir \ p1.obj (used by both projects p1 and test)
\ tool1.obj
\ p1_main.obj (only p1.vcproj)
\ p1_test.obj (only p1_test.vcproj
\ COMMON \ tool1.cpp; ...
Могу ли я использовать одну и ту же промежуточную папку для двух проектов C ++, тем самым напрямую разделяя obj
файлы?
Или мне всегда будет нужен дополнительный статический проект библиотеки? (Насколько я понимаю, статическая библиотека - это просто контейнер для obj
файлов.)
Зачем мне это нужно? Посмотрите это сообщение в блоге: Написание модульных тестов в Visual Studio для Native C ++.
Он использует статическую библиотеку с единственной целью - иметь два разных исполняемых файла (основные функции, если хотите). (Забудьте об управляемом / CLI.) Это означает, что в вашем решении есть 3 проекта (необходимо поддерживать три проекта), когда вам действительно нужны только два проекта, которые используют один и тот же код с одинаковыми настройками компиляции, но используют разные main / startup такелаж.