msys 路径转换(或 msys 的 cygpath?)

2024-01-08

我需要将 /DEF:c:\filepath\myLib.def" 命令行选项从 bash 脚本传递到 MS 编译器/链接器。该路径是由 bash 脚本作为构建过程的一部分生成的。基本上,我的脚本的参数通过是:

-DEF:/c/filepath/myLib.def

MSYS路径转换 http://www.mingw.org/wiki/Posix_path_conversion因为不理解而无法正确处理/DEF:部分。如果我这样做就有效

-DEF=/c/filepath/myLib.def

但 MS 工具不理解这个参数。简而言之,在 MSYS bash 中写入该参数以便将其转换为正确的参数的正确方法是什么?

在 cygwin 上,我可以使用 cygpath,但没有等效的,因为来自 msys 的人认为不需要它(即使有使用 cygpath 的 cygwin 脚本)。


更新(2016 年 8 月):

这个问题不再相关,因为msys2 https://msys2.github.io/现在带有cygpath在其安装中。

...

我将在这里总结我的研究。

The cygpathMSYS 中的等效命令是使用以下命令:

{ cd /c/some/path && pwd -W; } | sed 's|/|\\|g'

这种方法的问题是它需要现有路径,例如这c:\some\path必须是现有目录;然而,真实的cygpath支持不存在的路径。

因此,如果您需要获取不存在的目录的路径,那么您可以回退到路径的 sed 转换:

{ cd 2>/dev/null /c/some/path && pwd -W ||
  echo /c/some/path | sed 's|^/\([a-z,A-Z]\)/|\1:/|'; } | sed 's|/|\\|g'

满嘴的斜杠是为了满足引用规则sed。因此,如果c:\some\path您的电脑上不存在,它会尝试将正斜杠转换为反斜杠并替换/c/ with c:\(或任何其他驱动器号)。唯一的缺点是它无法正确工作包含已安装组件的不存在路径,例如/bin/does-not-exist or /usr/bin/does-not-exist.

另一种方法是使用cygpath来自 MSYS 中的 cygwin。 cygwin 似乎设置了全局环境变量 CYGPATH,也就是说,您可以从常规 cmd.exe 中使用它:

%CYGPATH% -w /c/some/path
C:\some\path

或来自 MSYS:

$CYGPATH -w /c/some/path
C:\some\path

只要你设定指向/c to /cygdrive/c在 Cygwin 中。 但这种方法会打印你/usr位于 cygwin 安装中,而不是在 MSYS 中。

简而言之,我认为 msys 确实应该在默认工具集中包含真正的 cygpath,只是针对某些 msys 命令行参数转换逻辑无法自动处理的情况

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

msys 路径转换(或 msys 的 cygpath?) 的相关文章

  • 手动设置Android Studio的JDK路径

    如何为 Android Studio 使用自定义 JDK 路径 我不想弄乱 PATH 因为我没有管理员权限 是否有某个配置设置文件允许我进行设置 如果您查看项目设置 您可以从那里访问 jdk 在标准 Windows 键盘映射上 您可以在项目
  • 无法在 Windows 10 上更新 pip 的 PATH 变量

    我知道有数千个类似的主题 但我的 pip 命令突然停止工作 尽管我进行了所有研究 但我无法弄清楚原因 自从我上次使用 pip 以来已经有一段时间了 令人惊讶的是我的计算机不再识别该命令 我重新安装了pip 提示告诉我PATH变量没有正确更新
  • Android 中的 java.io.FileNotFoundException

    我正在使用代码从图库中选择图像 public void onCreate Bundle savedInstanceState super onCreate savedInstanceState setContentView R layout
  • 将构建参数传递给 .wxs 文件以动态构建 wix 安装程序

    我是一名学生开发人员 我已经为我现在工作的公司构建了几个安装程序 所以我对WIX还是比较熟悉的 我们最近决定拥有一个构建服务器来自动构建我们的解决方案 它构建调试和发布以及混淆 和非混淆 项目 你真的不需要理解这些 您需要了解的是 我有相同
  • 沿着预定路径移动图像?

    是否可以通过按下 iphone SDK 中的按钮来将图像设置为沿着预定路径运动 我不是在寻找任何奇特的东西 我正在研究一个简单的概念 但这会节省大量动画工作 是的 您可以通过创建一个路径来为任何 CALayer 制作动画CAKeyframe
  • 从子域中的 ../ 路径

    假设我创建了一个子域 http subdomain mydomain com http subdomain mydomain com 最初是在这个网址 http mydomain com subfolder folder http mydo
  • Android Studio 使用的默认 Android SDK 路径是什么?

    使用Android Studio下载Android SDK时 默认下载路径是什么 我有兴趣了解 Linux Mac 和 Windows 的路径 在网上搜索了一下 好像是这样的 Linux Android Sdk Mac Library An
  • MySQL - 使用可变路径加载数据文件

    我在设置用于将数据放入表中的变量路径时遇到问题 这就是我构建路径的方式 SET path1 CONCAT C Projekte Metrics DXL CSV EXPORT DATA YEAR NOW MONTH NOW DAY NOW B
  • 我想回显 __FILE__ 名称而不带路径。我只想页面名称,例如:index.php

    echo FILE 给我 C EasyPHP DevServer 13 1VC9 data localweb projects FOLDERNAME index php 我只想获取不带路径的文件名 我想单独获取index php 有任何想法
  • golang中如何将相对路径解析为绝对路径?

    节点中是否有类似 path resolve 的API 或者有什么东西可以做同样的事情 例如 nodejs代码 path resolve sample sh 应该得到 home currentuser sample sh 解决 表示用户主目录
  • Cmake 错误:无效的转义序列 \U

    使用 CMake 在 VC 10 中运行 OpenCL 代码时 出现以下错误 CMake Error at CMakeLists txt 6 set Syntax error in cmake code at C Users Shreedh
  • Yii 框架:控制器/操作 url 和参数

    在我的申请中 我有ApiController with actionUsers 所以在 YII 中路径变成api users 现在为了获取某些用户信息 我使用以下路径api users id 10其中 10 是用户 ID id路径的一部分基
  • 与平台无关的文件路径?

    如何在 Python 中使用应用程序文件夹内的文件 当然与平台无关 与此类似的东西 bin sh mypath 0 LIBDIR mypath modules 您可以使用os path及其函数 负责处理特定于操作系统的路径 gt gt gt
  • 构建 OpenCV 时出错 :: MonitorFromRect 未在此范围内声明

    我试图建立OpenCV version 2 4 8与它一起使用CodeBlocks and MinGw 我按照以下指示进行操作here http kevinhughes ca tutorials opencv install on wind
  • Ansible:如何为Solaris设置全局路径

    我正在编写 Ansible 剧本来在 Solaris 服务器上设置和安装我们的应用程序 问题是我需要执行的 bash 脚本都假设某个目录位于 PATH 上 即 data bin 如果 Ansible 没有忽略所有这些 这通常不会成为问题 p
  • Python无法识别目录 os.path.isdir() [重复]

    这个问题在这里已经有答案了 我有以下 Python 代码来删除目录中的文件 由于某种原因 我的 svn 目录未被识别为目录 我得到以下输出 svn 不是目录 任何想法 将不胜感激 def rmfiles path pattern patte
  • Uri.parse("文件://" + ???);访问特定文件夹

    我的问题分为两部分 如何获取以下代码来访问此位置 存储 模拟 0 电影 特定文件夹 Code private Uri getUriFromMediaStore int position int dataIndex mMediaStoreCu
  • Phonegap cordova android“项目已存在”或运行时错误

    我在这里发帖是因为这让我发疯 我正在尝试让 PhoneGap 正常工作 我安装了 ADT 捆绑包 eclipse adt 插件 android SDK gt 顺便说一句 他们真的应该更新phonegap入门教程 该教程仍然告诉您单独安装所有
  • 关于我的编译器中缺少 stdafx.h(Windows 上的 mingw32)

    我有一个简单的问题 我注意到我的编译器中没有 stdafx h Windows 上的 mingw32 我应该拥有它吗 或者也许有办法绕过它 谢谢阅读 编辑 好的 这是我取出 stdafx h 的所有包含内容后的当前构建日志 http pas
  • Python 2.7从非默认目录打开多个文件(对于opencv)

    我在 64 位 win7 上使用 python 2 7 并拥有 opencv 2 4 x 当我写 cv2 imread pic 时 它会在我的默认 python 路径中打开 pic 即C Users Myname 但是我如何设法浏览不同的目

随机推荐