使用 MinGW64 构建 assimp

building assimp using MinGW64

我正在尝试使用 MinGW64 构建 assimp-5.0.0。 CMake CMakeLists.txt -G"MinGW Makefiles" 运行 没有问题。 但是当我调用 mingw32-make 时,我在

处遇到以下问题
[ 73%] Linking CXX executable ..\..\bin\assimp.exe:

CMakeFiles\assimp_cmd.dir/objects.a(Main.cpp.obj):Main.cpp:(.text+0x8d): undefined reference to Assimp::Importer::ValidateFlags(unsigned int) const

CMakeFiles\assimp_cmd.dir/objects.a(Main.cpp.obj):Main.cpp:(.text+0xc4): undefined reference to Assimp::Importer::ReadFile(char const*, unsigned int)

...

CMakeFiles\assimp_cmd.dir/objects.a(Export.cpp.obj):Export.cpp:(.text+0xf44): undefined reference to `Assimp::Exporter::GetExportFormatDescription(unsigned long long) const'

collect2.exe: error: ld returned 1 exit status

mingw32-make[2]: *** [tools\assimp_cmd\CMakeFiles\assimp_cmd.dir\build.make:195: bin/assimp.exe] Error 1

mingw32-make[1]: *** [CMakeFiles\Makefile2:337: tools/assimp_cmd/CMakeFiles/assimp_cmd.dir/all] Error 2

mingw32-make: *** [Makefile:135: all] Error 2

我在这里 https://github.com/assimp/assimp/issues/2431 发现了一个具有相同问题的 github 线程,创建者说它已修复...但似乎并非如此。 知道如何解决吗?

对于给您带来的不便,我们深表歉意。我认为这个问题已经被另一个提交修复了。我已经重新打开了问题报告。

在使用 MinGW-w64 构建 assimp 5.0.1 时,我注意到存在一些 dllexport/dllimport 问题。

在我的例子中,他们通过这个补丁解决了:

patch -ulbf include/assimp/defs.h << EOF
@@ -128,3 +128,3 @@

-#ifdef _MSC_VER
+#ifdef _WIN32
 #   undef ASSIMP_API
EOF