如何在用MinGW构建的C应用程序中运行外部命令?
我有一个用如何在用MinGW构建的C应用程序中运行外部命令?,c,windows,mingw,system,createprocess,C,Windows,Mingw,System,Createprocess,我有一个用C编写的应用程序,它必须在Windows下运行,并使用MinGW构建 在这个应用程序中,我必须运行bash命令,并尝试了CreateProcess()和system()函数 在这两种情况下,如果我通过MinGW控制台启动应用程序,我传递的命令都可以正常工作,但如果我双击运行它,则不能正常工作 所以我的问题是:如果我通过MinGW控制台运行它,命令由MinGW控制台执行,但是如果我双击它,它会尝试在哪里执行命令?你想运行什么“命令”?您是否使用程序的相对路径?然后,当您双击程序以启动它时
C
编写的应用程序,它必须在Windows
下运行,并使用MinGW
构建
在这个应用程序中,我必须运行bash命令,并尝试了CreateProcess()
和system()
函数
在这两种情况下,如果我通过MinGW
控制台启动应用程序,我传递的命令都可以正常工作,但如果我双击运行它,则不能正常工作
所以我的问题是:如果我通过
MinGW
控制台运行它,命令由MinGW
控制台执行,但是如果我双击它,它会尝试在哪里执行命令?你想运行什么“命令”?您是否使用程序的相对路径?然后,当您双击程序以启动它时,进程的工作目录(相对路径所对应的目录)很可能不是您所期望的。你试过使用你想要运行的程序的绝对路径吗?我必须运行git
,做一些事情,比如git clone
,git pull
等等。关键是,我的处理过程与其他命令完全相同,如convert
。我将convert
和git
导入我的MinGW
。创建应用程序捆绑包时,covert.exe
和git.exe
作为应用程序运行程序放在捆绑包bin/
文件夹中convert
命令始终有效,git
命令无效(双击打开)。如果尝试从cmd
而不是MinGW控制台启动git
命令,它是否运行?您的环境变量PATH可能不包括Git可执行文件的路径。Git
不从cmd
运行,但convert
也不运行。