Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何知道我的可执行文件是否也将在其他计算机(linux)上运行?_Linux_Linker_Executable - Fatal编程技术网

如何知道我的可执行文件是否也将在其他计算机(linux)上运行?

如何知道我的可执行文件是否也将在其他计算机(linux)上运行?,linux,linker,executable,Linux,Linker,Executable,我有一个可执行文件,我希望能够在其他Linux系统中分发和运行是否有一种方法可以合理地确定这是否可行,而无需访问最终的运行时环境? 例如,我担心我的可执行文件可能使用的是仅在我的开发机器上存在的动态库。为可执行文件提供任何相关的共享库,并在调用可执行文件的shell脚本中设置$LD_library_PATH,告诉链接器在哪里可以找到共享库。有关更多详细信息,请参阅ld.so(8)手册页,并确保遵循相应的许可证。查看Debian(.deb)和Redhat(.rpm)的包装材料。这是您的软件包的安装

我有一个可执行文件,我希望能够在其他Linux系统中分发和运行是否有一种方法可以合理地确定这是否可行,而无需访问最终的运行时环境?


例如,我担心我的可执行文件可能使用的是仅在我的开发机器上存在的动态库。

为可执行文件提供任何相关的共享库,并在调用可执行文件的shell脚本中设置
$LD_library_PATH
,告诉链接器在哪里可以找到共享库。有关更多详细信息,请参阅
ld.so(8)
手册页,并确保遵循相应的许可证。

查看Debian(.deb)和Redhat(.rpm)的包装材料。这是您的软件包的安装程序。它们并不那么难,您可以告诉它引用其他具有所需共享对象的包

打包工具通常可以修复缺少库的包等。它还将帮助您以这样一种方式放置二进制文件,即您不需要设置LD_LIBRARY_PATH或在可执行文件上放置shell脚本前端


它们也不难学。花一天的时间来处理每一个,你会得到一个可以接受的安装程序包。

难道你不能把所有东西静态地链接到一个超大质量黑洞^W^W二进制文件中吗


有没有一种方法可以在不访问最终运行时环境的情况下合理地确定这是否可行


一个人的环境可能与你的环境不同,即使它仍然是Linux。因此,要让您的程序吸引最广泛的受众,唯一可靠的方法就是发布源代码。

好的观点。但我目前的问题是,我想知道我是否已经处理了所有的库,如果其中一个库最终会丢失,那么“无法访问最终的运行时环境”会让打包变得有点棘手。如果您打算支持Linux的所有变体,而不做任何其他需要准确交付的工作,我要说的就是祝你好运