diff --git a/qjsc.c b/qjsc.c index f9e1928a2..e83fe57de 100644 --- a/qjsc.c +++ b/qjsc.c @@ -374,10 +374,13 @@ void help(void) exit(1); } -#if defined(CONFIG_CC) && !defined(_WIN32) +#if defined(CONFIG_CC) int exec_cmd(char **argv) { +#ifdef _WIN32 + return _spawnvp(_P_WAIT, argv[0], (const char * const *)argv); +#else int pid, status, ret; pid = fork(); @@ -392,6 +395,7 @@ int exec_cmd(char **argv) break; } return WEXITSTATUS(status); +#endif } static int output_executable(const char *out_filename, const char *cfilename, @@ -679,7 +683,11 @@ int main(int argc, char **argv) if (!out_filename) { if (output_type == OUTPUT_EXECUTABLE) { +#ifdef _WIN32 + out_filename = "a.exe"; +#else out_filename = "a.out"; +#endif } else { out_filename = "out.c"; }