我試圖在OS X上使用MacPorts安裝cgminer。從一開始,它就一直是個麻煩事,但通過適當的工具,常識和互聯網,我已經能夠實現這一目標。從本質上講,對須藤編譯堵塞讓安裝表明在線路util.c的956卡紙 - 這裏是終端輸出的文本:「複合語句結束時的標籤」錯誤,MacPorts,CGMiner
CC cgminer-cgminer.o
CC cgminer-util.o
util.c: In function ‘nanosleep_abstime’:
util.c:956: error: label at end of compound statement
make[1]: *** [cgminer-util.o] Error 1
make: *** [install-recursive] Error 1
這裏是UTIL的cgminer副本內容。下在的Xcode 4.6.3帶有註釋插入指定線956打開時,在納米sleep_abstime裁剪和:
static void nanosleep_abstime(struct timespec *ts_end)
{
uint64_t now_ns, end_ns, diff_ns;
struct timespec ts_diff;
struct timeval now;
end_ns = timespec_to_ns(ts_end);
gettimeofday(&now, NULL);
now_ns = timeval_to_ns(&now);
if (unlikely(now_ns >= end_ns))
goto out;
diff_ns = end_ns - now_ns;
ns_to_timespec(&ts_diff, diff_ns);
nanosleep(&ts_diff, NULL);
out:
#ifdef WIN32
timeEndPeriod(1);
#endif
} // LINE 956
#endif
現在,我不以任何方式,形狀或形式熟悉的Unix/Linux命令或終端在至少 - 我覺得自己像一條魚,所以我學到的所有東西都是錯誤的,然後學習的困難的方式。然而,我在網上讀到,這個錯誤是通過結束一個在函數的最後部分未解析的標籤來解決的 - 也就是說,如果該函數在默認情況下結束了:,休息;被放置在它和末端支架之間以解決錯誤。
但是,我試過在#ifdef預處理器參數中放置WIN32 #endif之後的break,並且在out之後直接放置:所有編譯器都繼續失敗。任何解決方案?我覺得解決方案正在把我凝視在臉上。
這是我設置的相關配置/版本信息:
OS X 10.8.4 (12E55)
Xcode 4.6.3 w/ Command Line Tools installed
MacPorts version 2.2.0
應該」我看到一個人......最近一直在研究3個comps,一個Mac,一個Ubuntu和一個Windows,所以這個錯誤並沒有像往常那樣發生,我很傻。 – ecfedele