![](/img/trans.png)
[英]How to convert a DOS-style path to Unix-style path under MSYS using simple commands?
[英]How to get CMake find_file to accept UNIX-style paths on MSYS2?
我在Windows 10和MSYS2上使用CMake 3.4.1(截至2015年12月25日的所有最新信息)。
当我使用CMake的find_file
命令时,除非路径为Windows风格,否则它将无法工作。 这对我来说是个问题,因为我正在尝试使用findwxWidgets.cmake
,因此失败了。
例如:
CMakeLists.txt:
cmake_minimum_required(VERSION 3.0)
find_file(version_h version.h PATHS /mingw64/include/wx-3.0/wx)
message(STATUS "version_h: ${version_h}")
运行cmake
吐出:
-- version_h: version_h-NOTFOUND
但这显然在那里:
>>> file /mingw64/include/wx-3.0/wx/version.h
/mingw64/include/wx-3.0/wx/version.h: C source, ASCII text
我想知道这是否是错误,或者是否必须设置一些晦涩的标记才能使其正常工作。 如何获取CMake的find_file
来查找具有UNIX样式路径的文件?
MinGW-w64 cmake无法理解MSYS2路径。 您可能会向CMake开发人员提出一个路径转换测试程序,但这相当繁琐,我希望它会拒绝。 相反,必须逐案解决这些问题。 wx-config是一个shell脚本,它提供了MSYS2路径。
这是当前发行的MSYS2 wxWidgets软件包中的错误,它将在下一版本中修复。 要解决此问题,请在/ mingw64 / bin / wx-config或/ mingw32 / bin / wx-config中找到以下行:
prefix=${input_option_prefix-${this_prefix:-/mingw64}}
(或/ mingw32),然后添加:
if [ "x${MSYSTEM}" = "xMINGW32" ] || [ "x${MSYSTEM}" = "xMINGW64" ]; then
prefix=$(cygpath -m ${prefix})
fi
但是请注意在升级时将其删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.