我无法编译这个简单的程序
#include<stdio.h>
#include<conio.h>
#include<spawn.h>
#include<process.h>
int main(){
printf("Spawning new process...\n");
spawnl(P_WAIT,"curl","www.google.co.in",NULL);
system("cls");
printf("Program execution completed somehow!\n");
getch();
return 0;
}
我尝试过使用以下命令:
g++ filename.cpp -l -o filename.cpp
结果:ld.exe cannot find -l exit with status 1
g++ filename.cpp -o filename
结果:error: spawn.h No such file or directory.
我的MinGW安装有问题吗?我使用的是Windows 7 32位和MinGW。
答案 0 :(得分:3)
spawn.h
不是标准的C / C ++标头。 POSIX定义了一个非标准<spawn.h>
标头,但它没有定义spawnl
函数,而且Windows也不是符合POSIX标准的系统。
Windows确实在<process.h>
中定义了_spawnl
功能,因此最简单的方法就是删除包含<spawn.h>
并使用它。您还可以重写代码以使用Windows函数CreateProcess
。