将应用程序从本地Linux机器移动到Linux服务器
问题描述:
我需要运行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
等等是什么意思?
答
在另一台Ubuntu 12上重新编译并且静态链接缺少的库。 e.g:
gcc -lsome_dynamic_lib code.c some_static_lib.a
+0
如果我不能“sudo apt-get install”,为Server Linux获取这些静态库的正确方法是什么? – mrgloom
这些都是版本,如果你建立你的程序对X版本,并运行对版本Ÿ
你的诀窍实际上是一个糟糕的主意,暗示你已经明确了两种不同的操作系统,可能有不同的库可能或可能不起作用。所以,你可能会很幸运,但不,它不一定会奏效。即使它运行,可能会有潜在的崩溃等待您执行特定的库调用。至于编号系统,我刚刚看到提及semver.org,一个权威和清晰的写作。 Docker可能是合适的。 –