我需要運行C++應用程序,該應用程序在我的本地開發人員Linux機器上(Ubuntu 14.04)在Linux服務器(Ubuntu 12)上的VirtualBox下構建,應用程序具有大量依賴性的問題以及我在該服務器上沒有sudo
,所以我不能做類似sudo apt-get install <libname-dev>
的事情。將應用程序從本地Linux機器移動到Linux服務器
我使用ldd
來找出服務器上缺少的庫。
例如:
libopenblas.so.0 => not found
liblapack.so.3 => not found
比我從我的本地機器/usr/lib/
複製此庫到服務器應用附近,比手工創建符號鏈接。
要複製的文件:
liblapack.so.3.0
libopenblas.so.0
鏈接創建:
liblapack.so.3
libopenblas.so
- 是不是壞主意做這種把戲,將它總是工作?
- 我想知道Linux的.so命名約定,
.so.3.0
,.so.0
等等是什麼意思?
這些都是版本,如果你建立你的程序對X版本,並運行對版本Ÿ
你的訣竅實際上是一個糟糕的主意,暗示你已經明確了兩種不同的操作系統,可能有不同的庫可能或可能不起作用。所以,你可能會很幸運,但不,它不一定會奏效。即使它運行,可能會有潛在的崩潰等待您執行特定的庫調用。至於編號系統,我剛剛看到提及semver.org,一個權威和清晰的寫作。 Docker可能是合適的。 –