C ++ компиляция приложения с 32- и 64-битными библиотеками - PullRequest
1 голос
/ 05 августа 2020

Я пытаюсь скомпилировать и связать библиотеку Assimp для загрузки модели. Он будет компилироваться, но продолжает выдавать мне ошибку LNK2019, из-за чего я зависал на несколько дней. В моем проекте есть библиотеки GLFW, GLAD, SOIL, GLM, и теперь я добавляю 64-битный Assimp.

Я пытаюсь скомпилировать и связать с 64-битным Assimp, однако моя конфигурационная сборка установлена для создания приложения x86 (это было просто значение по умолчанию, которое я оставил, поскольку это тестовый проект), я не уверен в этих четырех библиотеках, таких как GLAD и GLFW, если они 64-битные или 32-битные.

Мой вопрос: могу ли я по-прежнему использовать 64-битную библиотеку, если моя конфигурация Visual Studio настроена на 32-битную? Будет ли он просто конвертировать 64-битную библиотеку в 32-битную? А как насчет наоборот?

Могу ли я получить ошибку LNK2019 («Неразрешенные внешние символы»), потому что библиотека является 64-битной версией, хотя я компилирую как 32-битную? (Файл .lib уже был добавлен в каталоги и как зависимость, поэтому он точно знает, где найти определенные функции. Он просто не будет этого делать по какой-то причине и выдает ошибку LNK2019).

Имеет ли значение, если GLFW 32-битный, а Assimp - нет?

1 Ответ

2 голосов
/ 05 августа 2020

Могу ли я использовать 64-битную библиотеку, если моя конфигурация Visual Studio установлена ​​на 32-битную?

Нет, вы не можете использовать 64-битную библиотеку в 32-битной битовый проект, и наоборот. Вам нужны 32-битные библиотеки для 32-битного проекта и 64-битные библиотеки для 64-битного проекта.

Будет ли он просто конвертировать 64-битную библиотеку в 32-битную?

Нет, не будет.

...