使用 MinGW 构建 ASSIMP 会导致文件太大错误

Building ASSIMP with MinGW causes file too big error

本文关键字:文件 大错误 MinGW 构建 ASSIMP 使用      更新时间:2023-10-16

我正在Windows 10上使用cmake和mingw-w64构建ASSIMP,它在创建目标代码时给了我"文件太大"错误。我尝试使用MinGW和MinGW-w64,两者都给了我相同的错误。我正在使用默认设置,我使用 cmake 配置项目,生成生成文件,然后运行 mingw32-make。我可以设置某种标志来解决此问题吗?

编译器:

g++ (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0

这是输出:

[ 59%] Building CXX object code/CMakeFiles/assimp.dir/Importer/StepFile/StepFileImporter.cpp.obj
[ 60%] Building CXX object code/CMakeFiles/assimp.dir/Importer/StepFile/StepFileGen1.cpp.obj
C:/mingw-w64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.1.0/../../../../x86_64-w64-mingw32/bin/as.exe: 
CMakeFilesassimp.dirImporterStepFileStepFileGen1.cpp.obj: section .xdata$_ZNSt10_Head_baseILy0EPN6Assimp8StepFile29directed_dimensional_locationELb0EE7_M_headERKS4_: 
string table overflow at offset 10000029
C:UsersANDREW~1.NOTAppDataLocalTempccwwseVM.s: Assembler messages:
C:UsersANDREW~1.NOTAppDataLocalTempccwwseVM.s: Fatal error: can't close CMakeFilesassimp.dirImporterStepFileStepFileGen1.cpp.obj: File too big
mingw32-make[2]: *** [codeCMakeFilesassimp.dirbuild.make:2485: code/CMakeFiles/assimp.dir/Importer/StepFile/StepFileGen1.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFilesMakefile2:274: code/CMakeFiles/assimp.dir/all] Error 2
mingw32-make: *** [Makefile:129: all] Error 2

编辑:我正在使用github的Assimp主分支,它具有更新的实验功能。我下载了较旧的发布版本,但没有收到相同的错误。

此错误由 assimp 本身修复 https://github.com/assimp/assimp/issues/2406 您使用哪个版本?

对我有用的是什么:
进入 CMakeLists.txt 并添加:

set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-O3")

然后在关闭一些选项的情况下进行编译:

cmake .. -G "Unix Makefiles" -DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF
make -j4 && make install

它也适用于 5.0.0-rc1 和 5.0.1。