Это сомнение в организации решения в Visual Studio с использованием SVN.
Для упрощения предположим, что у меня есть статическая библиотека Util.lib, скомпилированная в проекте VS2010.
У меня также есть статическая библиотека Capture.lib, скомпилированная в VS2010, которая зависит от Util.lib.
В SVN Util.lib является внешним в папке Capture.lib, а проект Util был добавлен в решение Capture.lib.
Это прекрасно компилируется.
Теперь проблема. У меня есть другой проект, который называется Native, который компилирует DLL.
Эта DLL зависит от Capture.lib И Util.lib.
Я добавил как внешние, так и добавил проекты в решение Native.
Проблема в том, что во время компиляции Native проект Capture.lib не может быть скомпилирован, потому что он не находит Util.lib.
Это происходит потому, что он ищет в папке externals проекта Capture! И Утиля сейчас нет.
Что мне делать в этом случае? Должен ли я добавить проект Util (внутри externals / Capture / externals / Util) в Native
решение? Это правильный подход?
Спасибо
Это зависит от того, как часто меняются Util.lib и Capture.lib.
1) Если вы используете их фиксированные версии для Native.dll, вам просто нужно добавить
Util.lib и Capture.lib и их заголовочные папки в вашем родном проекте
(Project-> Properties-> C / C ++ -> Дополнительные каталоги включения, Project-> Properties-> Linker-> Input-> Дополнительные зависимости)
2) В случае, если Capture.lib и Native.dll динамически изменяются параллельно с Native.dll,
Вы должны как настроить зависимости таким же образом, как (1), так и добавить зависимости проекта в Capture.lib и Native.dll (Project-> Project Dependencies), где вы можете указать VS компилировать ваши проекты в правильном порядке.
Других решений пока нет …