如何使用 MinGW(Windows、GCC)编译 64 位的 cmake 生成的二进制文件?

How do I compile cmake generated binaries in 64bits using MinGW (Windows, GCC)?

提问人:Ian vos 提问时间:8/9/2023 最后编辑:Ian vos 更新时间:8/11/2023 访问量:105

问:

我一直在尝试使用 cmake 和 MinGW 为我的项目编译模型加载库 Assimp。但是,我不知道如何为 64 位执行此操作,这是我在我的项目中使用的。我使用了命令“mingw32-make”,但如果我理解正确,那是针对 32 位的,当我尝试使用获得的 DLL 运行我的项目时,它会在没有解释的情况下退出。我听说当您尝试将 32 位文件与 64 位项目链接时,可能会发生这种情况。我听说过“make.exe”,但我不知道它是否是我需要的,无论哪种方式,我都无法在我的 MinGW 文件夹中找到它。我宁愿不求助于 Visual Studio,我使用 VSCode。

C++ CMake mingw mingw-w64 assimp

评论

0赞 user4581301 8/9/2023
如果你严格按照 VS Code 的安装说明进行操作,你将安装 MSYS2,并且很可能可以从 pacman 中提取该库的预编译版本
0赞 user4581301 8/9/2023
一些很好的阅读材料,可帮助您在 MSYS2 中整理品牌
0赞 Ian vos 8/9/2023
在谈论 VSCode 时,您是否偶然指的是这个网站:code.visualstudio.com/docs/cpp/config-mingw#_prerequisites
0赞 HolyBlackCat 8/9/2023
mingw32-make可以构建任何类型的应用程序,因为它本身不进行任何编译。我支持这个建议:安装 MSYS2,用它来安装编译器和预构建的 Assimp,然后使用它。
0赞 user4581301 8/9/2023
那就是那个。MSYS2 最好的事情之一是其库支持的广度。您不必经常滚动自己的通用库和许多不常见库的构建。

答:

0赞 KimKulling 8/11/2023 #1

解决方案很简单:只需获取最新版本,为 win64 生成 make 文件并自行构建:

cd <assimp-source>
cmake CMakeLists.txt -G 'MinGW Makefiles'
cmake --build .

如果你不知道你的 mingw-toolchain cmake 生成器是如何调用的,你可以查看 cmake 帮助:

cmake --help

只需检查 MinGW 内容并为 cmake -G 选项添加列出的名称即可。

希望这能帮助您解决您的问题。