Я пытаюсь объединить 2 проекта в визуальной студии и получаю ошибку LNK1181. Я искал в Google и пробовал все, что находил, но просто не могу решить проблему.
Я получаю следующие результаты:
Выполнение сборки завершается успешно. Выполнение Rebuild завершается с ошибкой LNK1181: невозможно открыть входной файл "a.dll"
При сборке экран вывода показывает, что dll создана и находится в папке.
При выполнении перестройки экран вывода показывает, что dll создана, но ее нет в папке. И тогда ребилд приводит к фейлу + ошибка LNK1181.
Так что же не так? Чем отличается ребилд?
Я даже вижу в папке, что dll создается, а затем снова удаляется.
* У меня есть 1 проект, который является основным проектом и создает .exe, и он зависит от другого проекта для запуска.
Решение:
Я обнаружил проблему, и она не имеет ничего общего с сообщением об ошибке LNK, которое я получаю.
По-видимому, чистая -> сборка сильно отличается от простого перестроения. В основном потому, что у меня несколько проектов. При выполнении очистки -> сборка сначала очищает все файлы, а затем собирает все проекты.
Но выполнение проекта перестройки A очищается и строится, затем проект B очищается и строится и т. д.
Таким образом, сгенерированный библиотекой bij A удаляется. Решение для этого или просто сделайте чистую -> сборку. Или выполните мою собственную очистку, удалив файлы самостоятельно, а затем выполните восстановление.
Кроме того, мне не хочется тратить много времени на эту проблему, когда это всего лишь «проблема/ошибка» MSbuild, и достаточно сделать чистую сборку.