如何在用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
也不运行。