Build mingw下的建筑重铸导航

Build mingw下的建筑重铸导航,build,reference,mingw,undefined,msys,Build,Reference,Mingw,Undefined,Msys,我正试图通过MinGW构建RecastNavigation,除了RecastDemo应用程序之外,所有的构建似乎都很好 我已经做到了: cmake -G"MSYS Makefiles" -DSDL_INCLUDE_DIR:PATH=/c/_libdist/x86/msys/include/SDL \ -DSDL_LIBRARY:PATH=/c/_libdist/x86/msys/lib/libSDL.a \ -DSDLMAIN_LIBRARY:PATH=/c/_libdist/x86/msys/

我正试图通过MinGW构建RecastNavigation,除了RecastDemo应用程序之外,所有的构建似乎都很好

我已经做到了:

cmake -G"MSYS Makefiles" -DSDL_INCLUDE_DIR:PATH=/c/_libdist/x86/msys/include/SDL \
-DSDL_LIBRARY:PATH=/c/_libdist/x86/msys/lib/libSDL.a \
-DSDLMAIN_LIBRARY:PATH=/c/_libdist/x86/msys/lib/libSDLMain.a ..
然后,make VERBOSE=1在结尾给出了以下内容(去掉一堆未定义的内容):


我不确定在哪里可以进行更多的探索,因为图书馆的顺序似乎是正确的。我这里缺少什么?

问题是您缺少一个链接库,在本例中是mingw32。最简单的修复方法是告诉CMake哪里可以找到SDL。可以通过设置SDLDIR环境变量(请参见)来实现这一点。因此,根据您的SDL安装位置,从MinGW提示符:

export SDLDIR=/c/_libdist/x86/msys
然后运行CMake:

cmake -G "MSYS Makefiles" ..
这将找到SDL并正确设置SDL包含目录和链接库

但是,CMake中有一个错误,它将库以错误的顺序传递给链接器,请参阅。该错误已修复,但尚未在最新版本中发布(2.8.10.2)

在新的CMake发布之前,您可以做的是编辑缓存的 构建目录中cmakcache.txt中的SDL_库值并切换 然后重新运行CMake

cmake -G "MSYS Makefiles" ..