使用 MinGW 构建 ASSIMP 导致文件太大错误
Building ASSIMP with MinGW causes file too big error
我正在 windows 10 上使用 cmake 和 mingw-w64 构建 ASSIMP,它在创建目标代码时出现 "file too big" 错误。我尝试使用 MinGW 和 MinGW-w64,但都给我同样的错误。我使用的是默认设置,我使用 cmake 配置项目,生成 makefile,然后 运行 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:
CMakeFiles\assimp.dir\Importer\StepFile\StepFileGen1.cpp.obj: section .xdata$_ZNSt10_Head_baseILy0EPN6Assimp8StepFile29directed_dimensional_locationELb0EE7_M_headERKS4_:
string table overflow at offset 10000029
C:\Users\ANDREW~1.NOT\AppData\Local\Temp\ccwwseVM.s: Assembler messages:
C:\Users\ANDREW~1.NOT\AppData\Local\Temp\ccwwseVM.s: Fatal error: can't close CMakeFiles\assimp.dir\Importer\StepFile\StepFileGen1.cpp.obj: File too big
mingw32-make[2]: *** [code\CMakeFiles\assimp.dir\build.make:2485: code/CMakeFiles/assimp.dir/Importer/StepFile/StepFileGen1.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2: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。
我正在 windows 10 上使用 cmake 和 mingw-w64 构建 ASSIMP,它在创建目标代码时出现 "file too big" 错误。我尝试使用 MinGW 和 MinGW-w64,但都给我同样的错误。我使用的是默认设置,我使用 cmake 配置项目,生成 makefile,然后 运行 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:
CMakeFiles\assimp.dir\Importer\StepFile\StepFileGen1.cpp.obj: section .xdata$_ZNSt10_Head_baseILy0EPN6Assimp8StepFile29directed_dimensional_locationELb0EE7_M_headERKS4_:
string table overflow at offset 10000029
C:\Users\ANDREW~1.NOT\AppData\Local\Temp\ccwwseVM.s: Assembler messages:
C:\Users\ANDREW~1.NOT\AppData\Local\Temp\ccwwseVM.s: Fatal error: can't close CMakeFiles\assimp.dir\Importer\StepFile\StepFileGen1.cpp.obj: File too big
mingw32-make[2]: *** [code\CMakeFiles\assimp.dir\build.make:2485: code/CMakeFiles/assimp.dir/Importer/StepFile/StepFileGen1.cpp.obj] Error 1
mingw32-make[1]: *** [CMakeFiles\Makefile2: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。