我知道在Unix類型的系統上有(至少)兩種完全不同的共享庫文件。一個是在Mac OS X上使用GNU/Linux系統,可能其他系統中使用,以及(與文件名中的「所以」結尾)的種類和其他的,也可能其他系統以及(與文件名結尾在「.dylib」中)。如何判斷當前的操作系統是否使用類似Linux的或MacOSX共享庫?
我的問題是這樣的---有我可以從一個shell腳本,將很容易地檢測當前操作系統使用共享庫這兩種模式的這做任何類型的測試?
我相信我能找到一些方法可以輕鬆地與這種差異處理---如果只有我知道一個簡單的測試,我可以從一個shell腳本運行會告訴我哪個共享庫的類型上使用的目前的系統。
你可以用'UNAME -a'輸出開始或'/等內容/ issue'。另外,請記住,OS X(或多或少)BSD,而不是Linux,因此即使您鏈接到正確的庫,如果您只是從一個系統到另一個系統進行叉車,您也不會具有二進制兼容性。 – DopeGhoti
識別系統不是問題---問題是知道系統使用什麼類型的共享庫。我可以按照你的建議去做「uname -a」,或者通過運行GNU的「config-guess」腳本來獲得一個更加可配置的系統ID碼(我不能看「/ etc/issue」'coz這在我的系統中是不存在的) - 但除非有一種方便的方法來根據系統的標識查找庫格式,否則我仍然處於第一位。 –
@shellter FreeBSD的(和其他BSD變種,我想)對BSD內核之上自己的Linux兼容層,其允許運行未經修改的Linux(ELF)二進制文件。曾幾何時,他們擁有DOOM和Java的方式:)除維基百科以外,Linux還可以運行MacOS X 10.6二進制文件。所以問題是什麼user3080003想:) – user3159253