Использование .dlls в моих проектах - PullRequest
1 голос
/ 10 октября 2011

Здравствуйте,
Характеристики: VS 2010 C ++ Professional Edition.

У меня есть проект с некоторыми статистическими функциями, которые я хочу проверить.Поэтому я написал простое тестовое консольное приложение, которое я добавил к решению проекта с функциями, которые я хочу протестировать.Вот подробный макет моего проекта:

Project BASE , содержит классы с функциями, которые используются в моем статистическом приложении под названием ROC .И еще есть roc_test , простое консольное приложение, которое я хочу использовать для тестирования некоторых функций в ROC приложении.Теперь ROC связан с BASE , а roc_test имеет ROC в качестве ссылочного проекта.Моя проблема в том, что когда я пытаюсь скомпилировать мой тестовый проект roc_test , компилятор выдает ошибку, говорящую, что в моем roc_test проекте отсутствует файл DLL, принадлежащий проекту BASE. roc_test однако, напрямую не связан с BASE .Я не понимаю, почему он выдает такое сообщение и как я могу это исправить.Для ясности позвольте мне попытаться показать отношения по-другому.

roc_test вызывает функцию rocfit (..), которая является частью ROC.h . ROC.h с использованием функций, написанных в DoubleMatrix.h , который является частью проекта BASE .Я надеюсь, что я в порядке.PS Нет смысла показывать код, так как проблема не в коде, а в настройках компоновщика.Спасибо за любую помощь.

РЕДАКТИРОВАТЬ: Мой вопрос, как мне избавиться от ошибки?Мне также нужно связать мой тестовый проект с BASE ?Просто не имеет смысла, что я должен это делать.Этого должно быть достаточно, чтобы связать его с ROC .Я прав?

1 Ответ

1 голос
/ 10 октября 2011

Если он не включен в тот же каталог, что и консольное приложение (или в путь), то вам нужно будет включить BASE, поскольку среда выполнения не может разрешить зависимость от BASE посредством ROC.

Редактировать: недостаточно просто ссылаться на ROC; хотя может быть какая-то опция сборки, которая собирает ROC и BASE, а затем связывает их в одну DLL; это может стоить расследования.

Кроме того, вместо использования консольного приложения, в долгосрочной перспективе вы можете найти его лучше при использовании модульных тестов. В этой статье MSDN объясняется, как использовать тестовые проекты vs2010 с C ++:

http://msdn.microsoft.com/en-us/library/ms243171.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...