2016-01-13 23 views
0

問題時

我有一些半歲的C-程序我工作,並希望我能繼續工作現在在他們身上。之後,我確實安裝了Windows 10(64位),所以我認爲這可能會成爲一個問題,但從那以後,這些程序已經在Windows 10上運行。Cygwin的,錯誤使「不能得到PROC鎖」編譯和運行一個C程序

大約2個月前,我可以用make-file來構建並運行可執行文件,但是當我今天再次嘗試時,在我看來,似乎可執行文件沒有運行。我現在也嘗試更新cygwin和(我認爲)所有相關的軟件包。

我已經搜索了一下,如果有任何cygwin的重要變化,但我沒有真正找到任何東西。

詳細

當我嘗試運行任何程序沒有任何反應了很久,而在./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 

所以我猜有一個與得到一個互斥體或用於創建過程窗口鎖的問題,但我不知道爲什麼會發生這種事。

代碼

在此嘗試的例子使用的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; 
} 

有沒有人見過這個問題?

回答

3

Avast antivirus正在阻止程序正常運行。禁用它使一切運行完美。我終於找到了這個線程的答案:

Netbeans 8.1 IDE compiles and builds C programs but does not show their output

注: 因爲它沒有標記爲答案,在該線程,並因爲這個問題沒有明確的重點同樣的錯誤的問題(雖然呈現相同的錯誤),我會保留我的問題而不是將其標記爲重複。

謝謝Sheshadri Iyengar提供的解決方案。

+0

謝謝,這真的是不明朗! – AltWouss

+0

謝謝,也解決了我的問題(配置掛起)。我對avast中的cygwin64文件夾做了一個例外,並且能夠繼續。我能夠用ctrl-z讓進程進入睡眠狀態,並使用kill%n來終止這項工作。 – johnny