Невозможно построить проект модульного теста, получить LNK1181 "не могу открыть входной файл ... \ blah.lib" и не может использовать относительные пути - PullRequest
0 голосов
/ 06 ноября 2019

Проблемы

Проблема # 1

Я пытаюсь создать модульные тесты для файла dll, который я строю Когда я собираю модульные тесты, я получаю LNK1181 - не могу открыть входной файл .. . \ blah.lib

Issue # 2

Невозможно заставить работать относительные каталоги при добавлении дополнительных каталогов в мой проект модульного теста

Что я сделал

Issue # 1

Я следую инструкциям в разделе «Ссылка на экспортированные функции DLL из тестового проекта», найденном здесь:

https://docs.microsoft.com/en-us/visualstudio/test/how-to-write-unit-tests-for-cpp-dlls?view=vs-2019#projectRef

Когда я добавляю ссылку на проект, который я хочу протестировать и пытаюсь собрать (Шаг 3), я получаю ошибку LNK1181

Issue # 2

Мой абсолютный путь к папкесодержит заголовки, которые мне нужны: C: \ Users \ Adam \ source \ repos \ solutionDir \ dllProjDir

Я пытаюсь использовать это как относительный путь: $ (ProjectDir) .. \ dllProjDir

С выходом $ (ProjectDir) (согласно показанию «Оцененное значение») C: \ Users \ Adam \ source \ repos \ solutionDir \ unitTestProjDir

Итак, мой ожидаемый результат: C: \ Users \ Adam \ source \ repos \ solutionDir \ dllProjDir

Тем не менее, на основе считанного значения "Оцененное значение" мой относительный путькажется, приводит к: C: \ Users \ Adam \ source \ repos \ solutionDir \ unitTestProjDir .. \ dllProjDir

Так что .. \, похоже, не заставляет меня подниматься в каталог

Вопросы

  1. Почему компоновщик пытается открыть файл lib, когда я пытаюсь протестировать проект .dll?

  2. Почему нетмои относительные пути работают? Или они работают, и я не могу доверять показаниям «оценочного значения»

  3. Я попытался переключить dll proj на lib proj и следовал приведенным инструкциям, и это работает.

По какой-то причине мне нужно включить файл .cpp. Если я включаю заголовочный файл, я получаю «LNK2001 unresolved external symbol»

Один за другим яудалил все ссылки, которые я сделал (очистив то, что я добавил в «Свойства конфигурации> Линкер> Ввод> Дополнительные зависимости» и «Свойства конфигурации> Линкер> Общие> Дополнительные каталоги библиотеки» и «Свойства конфигурации> Каталоги VC ++> Включить каталоги» с последнимединственное, что имеет значение (где я поместил заголовок папки моего проекта)

Спасибо за чтение!

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