链接 Assimp Windows 11 的问题

问题描述 投票:0回答:1

我在 Windows 11 的 c++ 中链接 assimp 时遇到问题。我正在学习 LearnOpenGL 教程,但是我无法让 assimp 正确链接。我能够制作并生成 assimp .dll 和 .lib,并毫无错误地获取包含文件。我也可以毫无问题地进行编译,只需包含一些 assimp 标头。然而,每当我尝试使用 assimp 文件中的任何内容时,我都会收到“未定义的引用...”错误。我的 g++ 版本是 13.2.0,我使用此命令来编译我的项目,并将 {project_dir} 替换为项目目录的路径。

g++ -g -std=c++17 -I./include -L./lib {project_dir}\*.cpp {project_dir}\*.c -lglfw3dll -lassimp-vc143-mtd -o myprogram

Here是项目目录布局的图片。

确切的错误结果来自these lines,g++给出的错误消息是:

{terminal_exe_location} {file_path} undefined reference to `Assimp::Importer::~Importer()' 

我通过不同版本的 mSys2 和 mingw 尝试了多个版本的 g++。除了终端文件路径之外,错误消息没有明显变化。

如果有人能帮助我理解我在尝试构建/链接 assimp 时做错了什么,那就太好了,我将不胜感激。我对 C++ 和构建自己的二进制文件相当缺乏经验,因此我可能没有提供所有必要的信息,并且我可以根据要求提供未包含的任何日志/信息。

c++ opengl c++17 g++ assimp
1个回答
0
投票

我面临的问题是我链接了一个错误的文件,我使用 Visual Studio 编译器构建了 assimp,这导致在使用 g++ 编译时无法在 assimp 中实际找到任何内容。这里的修复方法是放弃手动制作 assimp,而只使用 MSYS2 二进制文件。感谢@HolyBlackCat的帮助。

© www.soinside.com 2019 - 2024. All rights reserved.