2016-05-18 4 views
0

Я серьезно теряю рассудок. Я развиваюсь в Linux в течение последних пяти лет, поэтому я немного новичок в мире visual studio/microsoft.Visual Studio, ссылки проектов вместе и тест

Вот проблема: у меня есть

  • проект, состоящий из четырех классов, связанных с библиотекой ИТК, чтобы реализованы некоторые функции, такие как IO, данные преобразования и так далее. Это будет скомпилировано в статической библиотеке или .lib (назовем его Алгоритм);
  • проект, который определяет общественные вызовы функций высокого уровня, который основан на статической библиотеку выше (назовем его AlgorithmFacade)
  • проекта UnitTest для тестирования классов Alogirthm (назовем его AlgorithmTest)

Теперь, это то, что я делаю

  • создать решение, чтобы содержать их все
  • Я связываю библиотеки ITK в алгоритме (т. заполнить поля: Включить, дополнительные зависимости и дополнительную библиотека Зависла)
  • #include классов заголовка Я хочу использовать в проекте AlgorithmFacade
  • ссылка библиотеки ИКА в AlgorithmFacade таким же образом, как я сделал для алгоритма, в противном случае он жалуется, что не может найти «itkImage» и тому подобное, что
  • ли одно и то же для AlorithmTest
  • Выполнить тест
  • Получить 970 предупреждения всех possibile видов
  • Следуйте городскую легенду, что предупреждения могут следует игнорировать
  • Получите ошибку, такую ​​как «Я не нахожу код для Algorithm.lib»
  • Отчаяние.

У меня есть ощущение, что я над этим занимаюсь. Но если я попытаюсь написать модульные тесты, фасад и реализация все в одном проекте VS жалуется.

  • Есть ли лучшее решение?
  • Должен ли я включать каждый раз все библиотеки с нуля?
  • Не удается Я просто проект, который включает в себя эти библиотеки и модульные тесты и подпроекты, которые автоматически унаследовать эти библиотеки?

PS Я использую родной C++, а не CLR.

PPS Я использую Visual Studio 2012

ответ

0

Основе из немногих ошибок, которые вы дали нам, это звучит как AlgorithmFacade должен иметь Algorithm.lib в Linker-> Входной раздел. АлгоритмTest должен иметь Algorithm.lib в своем разделе linker-> Input, а также, возможно, AlgorithmFacade.lib. Я все еще не уверен, какие проекты используют что.

Что еще вы можете столкнуться с проблемой сборки. Если вы щелкните правой кнопкой мыши по имени своего решения в проводнике решений и опустите его в свойства, вы увидите раздел зависимости проекта. АлгоритмФакад зависит от алгоритма. Алгоритм Тест также зависит от алгоритма.

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

+0

Я добавляю их в качестве ссылки: щелкните правой кнопкой мыши проект> Справка ...> ADD> project. Разве этого недостаточно? – user1384636

+0

Он должен. Но он не будет устанавливать порядок здания. –

+0

Теперь, когда у меня была возможность взглянуть на мое решение vs, я не вижу ссылку в меню правой кнопки мыши. Вы можете легко проверить зависимости проекта, перейдя в раздел «Общие свойства» решения, щелкните правой кнопкой мыши solution-> Properties. Здесь вы можете указать, какие проекты зависят от того, что это полностью отличается от определения того, какие проекты связаны с тем, какие библиотеки. –