应用程序在 cmd 中运行,在 git bash 中出现段错误
Application works in cmd, gives segfault in git bash
我正在 Visual Studio 2015 社区中使用 CGAL 开发 C++ 应用程序。当我从 Visual Studio(在调试和发布模式下,附加和不附加调试器)或从 Windows 命令提示符 运行 时,该应用程序工作。但是,当 运行 使用来自 git bash (mintty 2.0.3 x86-64-pc-msys) 的相同参数使用完全相同的可执行文件时,我有时会在调用一个dll。这让我很沮丧,因为我通常使用 git bash 作为我在 Windows.
上的控制台
当我从字符串构造 CORE::Expr(精确数字类型)时出现错误,例如“7268387242956068905493238078880045343536413606873180602814901991806392881133979233261910507137635655607625216062661779135286465”。这会调用 CGAL_Core-vc140-mt-gd-4.8.dll,后者又会调用 libgmp-10.dll,这是发生分段错误的地方。
是否可能存在未在 Windows 命令提示符中暴露的编程错误,或者使用不同的控制台是否会导致分段错误?
原来 git bash 是从它自己的安装目录 (Git/mingw64/bin/libgmp-10.dll) 而不是从 CGAL bin 目录加载 libgmp-10.dll。
我正在 Visual Studio 2015 社区中使用 CGAL 开发 C++ 应用程序。当我从 Visual Studio(在调试和发布模式下,附加和不附加调试器)或从 Windows 命令提示符 运行 时,该应用程序工作。但是,当 运行 使用来自 git bash (mintty 2.0.3 x86-64-pc-msys) 的相同参数使用完全相同的可执行文件时,我有时会在调用一个dll。这让我很沮丧,因为我通常使用 git bash 作为我在 Windows.
上的控制台当我从字符串构造 CORE::Expr(精确数字类型)时出现错误,例如“7268387242956068905493238078880045343536413606873180602814901991806392881133979233261910507137635655607625216062661779135286465”。这会调用 CGAL_Core-vc140-mt-gd-4.8.dll,后者又会调用 libgmp-10.dll,这是发生分段错误的地方。
是否可能存在未在 Windows 命令提示符中暴露的编程错误,或者使用不同的控制台是否会导致分段错误?
原来 git bash 是从它自己的安装目录 (Git/mingw64/bin/libgmp-10.dll) 而不是从 CGAL bin 目录加载 libgmp-10.dll。