分析cygwin下報「無法定位程式輸入點」的錯誤

2021-06-28 16:26:47 字數 942 閱讀 8857

現象:

之前網上下了乙個cygwin的本地安裝版本,裝了一些常用的命令列工具集。結果執行最為常用的ls命令時總是報如下的錯誤:「無法定位程式輸入點 strtoumax 於動態鏈結庫 cygwin1.dll 上」。地球人都知道,unix下不能使用ls命令,塵世間最痛苦的事莫過於此啦~

原因:在網上搜了一下,看到關於cygwin的介紹:

「cygwin的工作機制:cygnus當初首先把gcc,gdb,gas等開發工具

進行了改進,使他們能夠生成並解釋win32的目標檔案。然後,他們要把

這些工具移植到windows平台上去。一種方案是基於win32 api對這些工

具的源**進行大幅修改,這樣做顯然需要大量工作。因此,他們採取

了一種不同的方法——他們寫了乙個共享庫(就是cygwin dll),把win32api中沒有的unix風格的呼叫(如fork,spawn,signals,select,sockets

等)封裝在裡面,也就是說,他們基於 win32 api寫了乙個unix系統庫的模擬層。這樣,只要把這些工具的源**和這個共享庫連線到一起,

就可以使用unix主機上的交*編譯器來生成可以在 windows平台上執行的

工具集。以這些移植到windows平台上的開發工具為基礎,cygnus又逐步

把其他的工具(幾乎不需要對源**進行修改,只需要修改他們的配置

指令碼)軟體移植到windows上來。這樣,在windows平台上執行bash和開

發工具、使用者工具,感覺好像在unix上工作。」

從上面的文字了解到,前面報錯的動態鏈結庫cygwin1.dll實質就是乙個作業系統的介面適配層,所報的錯誤應該是在該庫中沒有找到被ls命令呼叫的介面函式strtoumax。因此,造成該錯誤的原因極有可能是該動態庫版本與所用的ls命令不匹配。

解決:

cygwin安裝hadoop的時候,報0755錯誤

在hadoop namenode format成功格式化後,start all.sh的時候,jobtracker和tasktracker沒有正常啟動,日誌檔案中報d hadoop hadoop 1.0.1 logs history done to 0755,許可權不夠的錯誤,直接到這個目錄,將這個目...

Cygwin下中文輸入

現如今不會用linux程式設計,似乎是件不光彩的事兒。其實幾乎10年前就玩兒過。當時,花一千多大人 民幣 買的ibm硬碟,1.6gb的一半兒裝了個小紅帽5。沒等學會shell程式設計,就放棄了。一幌1 10個世紀過去了。最近要折騰yaws,在windows上非得cygwin不可。沒轍,學吧。教材不錯...

cygwin下安裝軟體

很多時候,我們在windows下安裝完cygwin後,使用時發現裝少了軟體。那麼怎麼辦?1 有的人說用setup.exe那個玩意再搞一遍。個人比較覺得那個方法蛋疼。2 有的人說用find命令,怎麼安裝之類的,也不太爽。3 後來發現apt cyg這個程式,真是強大啊。使用方法和ubuntu下的apt ...