繁体   English   中英

如何使CMake find_file在MSYS2上接受UNIX样式的路径?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM