2015-10-20 3 views
1

В нашем проекте структура каталогов наших файлов исходного кода связана с нашими пространствами имен. Например, класс Util, который принадлежит к пространству имен MyNamespace_A будет реализован в файле .../MyNamespace_A/util.cppРасположение объектного файла проекта Visual Studio C++

Теперь пространство имен «OtherNamespace :: подпространстве имен» также должны иметь класс Util. Он должен быть реализован в файле .../OtherNamespace/SubNamespace/Util.cpp

Без указания явного объектного файла (Свойства файла .cpp -> C/C++ -> Файлы вывода -> Имя файла объекта) это приведет к проблемам, потому что два объектных файла будут иметь одинаковое имя и по умолчанию они хранятся в том же каталоге (который является «$ (IntDir)»).

Есть ли автоматический механизм, который позволяет мне указать, что структура каталогов выходных файлов должна быть такой же, как структура каталогов исходного кода? Могу ли я решить проблему по-другому, чем указать имя файла объекта для каждого из файлов исходного кода?

+0

Насколько я знаю, такого механизма нет. Единственное решение, которое я вижу для вашей проблемы, - это поместить источники для каждого пространства имен в свой собственный проект (библиотеку объектов или DLL). – nv3

ответ

2

правой кнопкой мыши на проекте и перейти к ...

Свойства -> C/C++ -> Output Files -> Вывод Имя файла

Затем введите ...

$ (IntDir) /% (RelativeDir)/

Это поместит каждый файл .obj в подпапку, как в исходных файлах.

Смежные вопросы