我有一臺遠程Unix服務器,我想運行各種程序。我可以很容易地建立一個運行Unix的本地虛擬機,我可以編譯我的程序。麻煩的是,將Unix程序從一臺主機移到另一臺主機似乎總是失敗。 :-(將Unix程序從一臺主機移植到另一臺主機
例如,我編譯了test
在一個OpenSUSE 11.4系統上,並試圖運行它,它工作得很好,但後來我將編譯後的二進制文件複製到Debian 6.0.3系統,現在拒絕運行。相反,我只是得到
測試:錯誤而載入共享庫:libgmp.so.10:無法打開共享對象文件:沒有這樣的文件或目錄
想必安裝編譯器還安裝所有依賴性 - 但只在本地機器上。我大概必須以某種方式猜我需要放在遠程機器上的依賴關係。
最重要的是,我沒有shell訪問遠程機器的權限。我只有FTP。所以我不能安裝什麼。我只能將文件複製到它。所以我想知道我是否可以將複製將必要的共享庫複製到編譯後的二進制文件所在的文件夾中。這會起作用嗎?或者我會不得不做更復雜的事情?
你是如何在遠程計算機上執行程序無殼?您需要能夠設置環境變量來顯示共享庫的位置,除非您只是靜態鏈接整個事情。 (http://stackoverflow.com/questions/1437393/shared-libraries-in-same-folder-with-app-in-tcsh可能會幫助你,雖然沒有訪問一個shell,也許不會。) – geoffspear 2012-07-19 12:27:06
二進制是應該的通過CGI運行。用合適的URL指向Web瀏覽器會導致二進制文件運行。或者,吐出鏈接錯誤 - 但不能讀取任何地方。 :-( – MathematicalOrchid 2012-07-19 12:29:37