У меня есть несколько проектов, которые встраиваются в статические библиотеки (реализация).
Все библиотеки реализации затем используются в проекте, который встраивается в статическую библиотеку (движок).
Эта библиотека движка статически скомпонованы в окончательный исполняемый файл.
Идея состоит в том, что множество проектов связаны с одной библиотекой механизма, а не с несколькими библиотеками реализации.
Для библиотеки времени выполнения установлено значение «Многопоточный». DLL» или «DLL многопоточной отладки».
У меня есть два компьютера, на которых установлена обновленная версия Windows 11, обновленная Visual Studio 22, все драйверы обновлены и обновлена версия GitHub. управление.
Первый компьютер — i7-11800 с NVidia RTX 3050ti.
Второй компьютер — i5-8300 с NVidia GTX 1050
Проблема:
Компьютер один собирает и связывает исполняемый файл, как ожидалось.
Компьютер второй собирает все объектные файлы, однако при связывании возникает ошибка для каждого символа в библиотеках реализации (lnk2005).
Я проверил все версии программного обеспечения и т. д.
У меня есть попробовал скопировать все через git, а также скопировать все вручную.
Я сравнил все настройки сборки, выходные файлы и т. д. Все выглядит одинаково.
Я не знаю, что проверять дальше.
Изменить:
Конкретными библиотеками реализации являются ImGui и GLFW.
Каждая функция, используемая библиотекой движка. приведет к ошибке lnk2005, структурированной примерно так:
glfwGetError() уже определено в glfw3dll.lib(glfw3.dll)
или
ImGui::Begin() уже определено в imguidll.lib(ImGui.dll)
Прошу прощения Текст ошибки не является копией из связанного отчета об ошибках.
В итоге я удалил, а затем установил Python. Не спрашивайте меня, почему, но обновление Python до последней версии — это не то же самое, что удаление и последующая установка вручную.
Подробнее здесь: https://stackoverflow.com/questions/793 ... link-issue