带或不带 MSYS 的 MinGW makefile(del 与 rm)

2024-03-19

我正在使用 MinGW 在 Windows 上编译一些东西。我打电话mingw32-make直接来自cmd.exe一切(我需要的)都工作正常。但是我发现我需要能够从 MSYS 环境进行编译,并且我遇到了问题copy and del命令不被识别。我知道只需将它们替换为cp and rm,但我想对这两种情况使用单个 makefile。

有没有办法强制msys环境调用系统del and cp命令?

或者更好的是,有没有办法区分 makefile 是否被调用cmd.exe或者msys?我可以为命令设置适当的变量。这将非常有帮助,因为我可以删除其他一些重复的 makefile。

任何帮助表示赞赏。

Thanks

EDIT:让事情变得更加困难:mingw32-make似乎正在使用sh.exe如果在运行时在 PATH 中找到cmd.exe。这有一组完全不同的环境变量。

EDIT:好的,如果有人仍然感兴趣,我最终得到了以下文件,我将其包含到我的其他 Makefile 中:

ifeq ($(OS),Windows_NT) 
RM = del /Q /F
CP = copy /Y
ifdef ComSpec
SHELL := $(ComSpec)
endif
ifdef COMSPEC
SHELL := $(COMSPEC)
endif
else
RM = rm -rf
CP = cp -f
endif

如果没有,并且您仍然认为这是一个重复的问题,我当然可以删除这个问题。

由于我不知道的原因ComSpec and COMPSPEC做出改变。


我和你遇到了同样的情况。我将MSYS目录添加到PATH环境变量中,效果很好。

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

带或不带 MSYS 的 MinGW makefile(del 与 rm) 的相关文章

  • 代码 GetAsyncKeyState(VK_SHIFT) & 0x8000 中的这些数字是什么?它们是必不可少的吗?

    我试图在按下按键的简单动作中找到这些数字及其含义的任何逻辑解释 GetAsyncKeyState VK SHIFT 0x8000 可以使用哪些其他值来代替0x8000它们与按键有什么关系 GetAsyncKeyState 根据文档返回 如果
  • 查找进程的完整路径

    我已经编写了 C 控制台应用程序 当我启动应用程序时 不使用cmd 我可以看到它列在任务管理器的进程列表中 现在我需要编写另一个应用程序 在其中我需要查找以前的应用程序是否正在运行 我知道应用程序名称和路径 所以我已将管理对象搜索器查询写入
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 从客户端访问 DomainService 中的自定义对象

    我正在使用域服务从 Silverlight 客户端的数据库中获取数据 在DomainService1 cs中 我添加了以下内容 EnableClientAccess public class Product public int produ
  • 使用可变参数包类型扩展的 C++ 函数调用者包装器

    我绑定了一些 API 并且绑定了一些函数签名 如下所示 static bool WrapperFunction JSContext cx unsigned argc JS Value vp 我尝试将对象和函数包装在 SpiderMonkey
  • File.AppendText 尝试写入错误的位置

    我有一个 C 控制台应用程序 它作为 Windows 任务计划程序中的计划任务运行 此控制台应用程序写入日志文件 该日志文件在调试模式下运行时会创建并写入应用程序文件夹本身内的文件 但是 当它在任务计划程序中运行时 它会抛出一个错误 指出访
  • C# 存档中的文件列表

    我正在创建一个 FileFinder 类 您可以在其中进行如下搜索 var fileFinder new FileFinder new string C MyFolder1 C MyFolder2 new string
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 识别 Visual Studio 中的重载运算符 (c++)

    有没有办法使用 Visual Studio 快速直观地识别 C 中的重载运算符 在我看来 C 中的一大问题是不知道您正在使用的运算符是否已重载 Visual Studio 或某些第三方工具中是否有某些功能可以自动突出显示重载运算符或对重载运
  • 打破 ReadFile() 阻塞 - 命名管道 (Windows API)

    为了简化 这是一种命名管道服务器正在等待命名管道客户端写入管道的情况 使用 WriteFile 阻塞的 Windows API 是 ReadFile 服务器已创建启用阻塞的同步管道 无重叠 I O 客户端已连接 现在服务器正在等待一些数据
  • 使用valgrind进行GDB远程调试

    如果我使用远程调试gdb我连接到gdbserver using target remote host 2345 如果我使用 valgrind 和 gdb 调试内存错误 以中断无效内存访问 我会使用 target remote vgdb 启动
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在 Windows 上查找父进程 ID

    Problem 给定远程 Windows 主机上的进程 ID 和命令行访问权限 如何找到其父进程的 PID Solution 鉴于 Marc B 的回答 我们可以使用 WMIC 命令示例here https learn microsoft
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • String.Empty 与 "" [重复]

    这个问题在这里已经有答案了 可能的重复 String Empty 和 有什么区别 https stackoverflow com questions 151472 what is the difference between string
  • 可访问性不一致:参数类型的可访问性低于方法

    我试图在两个表单之间传递一个对象 基本上是对当前登录用户的引用 目前 我在登录表单中有一些类似的内容 private ACTInterface oActInterface public void button1 Click object s
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • sqlite3-ruby gem:无法构建 gem 本机扩展

    Update 看看这个后续问题 Windows 上的 Gem 更新 它坏了吗 https stackoverflow com questions 134581 gem update on windows is it broken 在 Win
  • OpenCV SIFT 描述符关键点半径

    我正在深入研究OpenCV的SIFT描述符提取的实现 https github com Itseez opencv blob master modules nonfree src sift cpp 我发现了一些令人费解的代码来获取兴趣点邻域

随机推荐

  • 顺序一致但非静态一致的执行示例

    根据 Maurice Herlihy 和 Nir Shavit 的 多处理器编程的艺术 第 3 章 在并发程序的正确性方面 顺序一致性是比静态一致性更强的条件 作者还在 3 4 1 中提到 存在顺序一致的执行 但并非静态一致 我不明白怎么办
  • 使用 Jcraft 通过 SFTP 传输文件

    项目清单 我可以编写一个java程序通过SFTP传输文件 但是 这将包含一个带有可执行命令的脚本 这可以通过 Jcraft 实现吗 比方说 示例脚本文件是这样的 cd pub ascii get filename txt put other
  • 打字稿提升

    我试图理解打字稿中的提升 提升是否在 Typescript 中进行 如果是 与 Javascript 中的提升方式相比有什么不同吗 例如 即使我在使用它的函数之后声明了接口 代码也可以很好地转换 可以安全地假设它的发生是由于作为转译的一部分
  • 使用具有多行的 imagettftext 函数?

    我正在使用 php 创建透明文本 gt png 图像 到目前为止一切顺利 唯一的问题是我希望能够由于固定宽度而使文本自动换行 或者能够在文本中插入断线 有没有人有任何经验这样做 这是我的代码
  • 动态更改持久性单元 - JPA

    persistence xml 中的持久性单元是在构建应用程序期间创建的 由于我想在运行时更改数据库url 有什么方法可以在运行时修改持久化单元吗 我应该在分发后使用除预绑定数据库之外的不同数据库 我正在使用 EclipseLink JPA
  • Django-storage - 如何在上传之前检查文件大小?

    存储和 Django 1 6 我想限制保存的文件大小s3 执行此操作的适当方法是什么 我应该在表单中进行自定义字段验证 还是在使用 Django Storage 时有更好的方法来执行此操作 验证需要将文件上传到服务器 这建议的方式 http
  • 会话关闭后如何强制休眠释放内存?

    我们最近才开始使用 Hibernate 并且仍在适应它的工作方式 我们看到的一件事是 即使在所有会话关闭并且引用超出范围之后 hibernate 似乎仍然在其缓存中维护以前使用的数据库值 我们的代码可以多次读取一组表 因为所有的内存都被非常
  • 从通过 cron 作业运行的 bash 脚本访问 SSH 密钥

    我将这个脚本放在一起 每天更新一个分叉的 Github 存储库文件夹 如果我从提示符中调用它 它运行得很好 但我无法弄清楚如何让它在作为 cron 作业运行时可靠地利用我的 id rsa 这eval ssh agent 正是这样做的尝试 但
  • XCode中文档下的“注释”的用途是什么

    字体选择框下方有一个自由文本字段Xcode 5 似乎属于Notes类别 那么 注释和空盒子的目的是什么under No Font如下图所示 我尝试为我的一个组件 即我的按钮 使用注释 并为其添加一些注释 如图 1 所示 这是 XIB 中按钮
  • 单个请求到多个异步响应

    所以 问题来了 iPhone 很棒 但对于有服务器端要求的应用程序来说 带宽和延迟是严重的问题 我解决这个问题的最初计划是对数据位发出多个请求 双关语无意 并以此来处理大量传入 传出数据的问题 由于很多原因 这是一个坏主意 对我来说最明显的
  • Selenium:如何拦截请求

    有人知道如何在 Selenium WebDriver 中拦截 获取请求 url XHR 和响应吗 是否可以 Webdriver 不直接支持它 但您可以通过代理重定向来捕获所有流量 在爪哇 Proxy proxy new Proxy This
  • StartsWith() 不会转换为 LINQ 中的 Like('abc%')

    我有以下 ASP NET Core LINQ 代码 List
  • 如何存储和更新具有不同数据类型属性的 localStorage 键对象?

    这是我第一次使用localStorage我想存储一个localStoragekey 是一个具有不同数据类型属性的对象 例如 key localstor 它是一个包含两个属性的对象 localstor userMsg String userI
  • 将 Excel 解析为 JSON

    我想知道是否可以将 excel 解析为 json 如果可能的话 Excel 的结构使其成为可能 有应用程序什么的吗 我有这个 JSON 结构http pastie org 2760828 http pastie org 2760828我必须
  • Swift 中的@dynamicCallable 是什么?

    来自苹果的文档 The dynamicCallable属性让你可以调用named types就像你打电话一样 使用简单语法糖的函数 主要用例是动态语言互操作性 你为什么要使用 dynamicCallable而不是直接方法 dynamicCa
  • Angular 7 - 向动态创建的组件添加拖放行为

    这是我在 SO 上提出的上一个问题的延续 在声明组件选择器时添加指令 Angular 7 https stackoverflow com questions 56072516 add directives to component sele
  • VBA-Loop 和一些工作表

    我是一个初学者 我想在我的 Excel 文件的所有工作表中进行循环 除了第一个工作表 然而 下面的代码仅适用于第二个 您能解释一下这段代码有什么问题吗 非常感谢 Sub MobileTCalculation MobileTCalculati
  • Ivy、Ant、Jenkins - 在 Jenkins 构建上使用 是个好主意吗?

    我们将使用 Ivy 和 Ant 并且让 Jenkins 来完成我们的构建 我原本以为让詹金斯做一个
  • 如何使用Nashorn引擎调用Java对象

    我想使用 Nashorn 控制台来替代 Rails c 例如 我想调用Java方法从远程系统导入数据并执行数据迁移 我发现这非常有趣 https www baeldung com java nashorn https www baeldun
  • 带或不带 MSYS 的 MinGW makefile(del 与 rm)

    我正在使用 MinGW 在 Windows 上编译一些东西 我打电话mingw32 make直接来自cmd exe一切 我需要的 都工作正常 但是我发现我需要能够从 MSYS 环境进行编译 并且我遇到了问题copy and del命令不被识