我有一些半年历史的c程序,我正在努力,并希望我现在可以继续研究它们。我之后就安装了Windows 10(64位),所以我觉得这可能是一个问题但是程序已经在Windows 10上运行了。
大约2个月前,我可以使用make文件构建并运行可执行文件但是当我今天再次尝试时,在我看来,可执行文件似乎没有运行。我现在也尝试更新cygwin和(我认为)所有相关的软件包。
如果对cygwin有任何重大更改,我已经使用Google搜索但我没有找到任何内容。
当我尝试运行任何程序时,在./executeables/helloworld.exe
行很长一段时间没有发生任何事情,然后最终产生错误:
$ make 1
gcc 1-helloworld.c -o ./executeables/helloworld.exe -lncurses
./executeables/helloworld.exe
0 [sig] make 7332 get_proc_lock: Couldn't acquire sync_proc_subproc for(5, 1), last 7, Win32 error 0
1324 [sig] make 7332 proc_subproc: couldn't get proc lock. what 5, val 1
在此之后,没有任何反应,我甚至无法使用ctrl+C
停止进程,因此我必须使用任务管理器结束“make.exe”(奇怪的是,包含2个进程)。然后终端只说
makefile:2: recipe for target '1' failed
make: *** [1] Error 1
所以我猜测从Windows创建进程获取互斥锁或锁是一个问题,但我不知道为什么会发生这种情况。
此尝试中的示例将此代码用于hello world程序,但对于更复杂的程序也是如此。
#include <ncurses.h>
#include <string.h>
int main() {
char *message="Hello World";
int row,col;
int len = strlen(message);
initscr();
getmaxyx(stdscr, row, col); //screensize
mvprintw(row/2, (col-len)/2, "%s", message); //center of screen
getch();
refresh();
endwin();
return 0;
}
以前有人见过这个问题吗?
答案 0 :(得分:3)
Avast防病毒阻止程序正常运行。禁用它使一切运行完美。我终于在这个帖子中找到了答案:
Netbeans 8.1 IDE compiles and builds C programs but does not show their output
注意:强> 由于它没有被标记为该线程中问题的答案,并且因为该问题没有明确地集中相同的错误(尽管出现相同的错误),我将保留我的问题,而不是将其标记为重复。
谢谢Sheshadri Iyengar提供解决方案。