perl程序如何编译成二进制文件并使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了perl程序如何编译成二进制文件并使用相关的知识,希望对你有一定的参考价值。

我使用pp工具将编写的pl程序转换成二进制文件,步骤如下:
/usr/local/bin/pp <filename>.pl
输出为a.out。不知如何使用,请高手指点!
可以直接执行,但编译成二进制是为了给程序加密

这个完全是转自网络资源, 自己懒, 不愿意写了, 给你个链接。 看看能不能帮你吧
http://wenku.baidu.com/view/55091042be1e650e52ea9908.html

a.out就是一个可执行文件。 在Linux的执行文件,你可以理解为windows下的exe文件。
你可以试一下, 用gcc编译一个c文件
test.c
#include <stdio.h>
int main(void)

printf("Hello World\n");
return 0;

用gcc test.c编译一下, 得到的就是test.out。 然后直接./test.out执行就可以了
参考技术A 我没用过这个工具,不过想来应该和用gcc通过c语言源文件编译出来的输出文件差不多。你可以试试将输出的文件加上可执行权限,然后,把它作为一个命令在命令行下运行本回答被提问者采纳 参考技术B
perl最早是unix系统(后来移植到windows上了)上的一种脚本语言(解释执行)。不过功能非常强大,可以与c语言(编译执行)媲美。一般需要在解释语言的环境下执行,也有工具可以把perl转换成exe文件。perl最多的用途在于编写cgi动态网页的后台脚本,虽然她的功能远不止这些
几乎所有的跨平台工具都需要安装环境(引擎)php、perl、java……

使用 GCC 将 C++ 应用程序静态编译成二进制文件

【中文标题】使用 GCC 将 C++ 应用程序静态编译成二进制文件【英文标题】:Statically compile a C++ app with GCC into a binary 【发布时间】:2012-10-29 08:14:09 【问题描述】:

如何在面向 unix 的 Ubuntu 机器上使用 GCC 静态编译应用程序?我将如何定位 32 位/64 位机器和具有不同版本 GLIBC 或任何 unix C++ 应用程序通常依赖的机器?然后我想以二进制形式分发这个应用程序并在 unix 机器上运行它,而不需要从源代码编译。

同样,我可以compile this app on Windows such that it will run on unix吗?

【问题讨论】:

一般来说,您不能“以 Unix 为目标”。如果您构建 Linux 二进制文件,它将仅在 Linux 系统上运行。 FreeBSD 有一个 Linux 兼容层,但这是唯一的例外。该二进制文件无法在 Mac OS X、Solaris 或其他 Unix 系统上运行。 如果你想证明自己在不同的 unix 机器上使用不同版本的 clib 和标准库,你需要标志 -static-libgcc 和 -static-libstdc++。这会将它们嵌入文件中,因此您不依赖于将运行它的系统上的 .so 文件 @Rolle - 您能否添加您的评论作为答案?它非常有用。 【参考方案1】:

要编译它以便在 Linux 上运行,只需像这样编译它:

g++ -o myapp myapp-a.cop myappb.cop -L mylib1

这应该适用于大多数版本的 Linux,也适用于某些版本的 FreeBSD。

这不会静态链接到 libstdc++,但这可能是一个更好的方法。根据经验,即使系统调用 abi 发生变化,您也应该动态链接到 OS c lib 以允许您的应用程序工作。

您可以使用“-m32”作为标志,强制从 64 位机器进行 32 位编译。它将编译模式设置为 32 位。

至于在 Windows 上编译:是的。你能行的。它被称为交叉编译。您首先需要编译一个以 Linux 为目标的工具链。

【讨论】:

不幸的是,这个秘籍不适用于使用不同版本 glibc 或 libstdc++ 的系统(如旧的 Linux 系统),因为你不使用静态编译。【参考方案2】:

这是创建静态编译的仅 32 位可执行文件的方法,它应该可以在任何已知的 Linux 上运行,而不会抱怨缺少库:

g++ -m32 -static -o myprog myprog.cpp

这样做的一个缺点是可执行文件的最小大小至少为 600 KB。

注意:如果您遇到编译错误,请务必安装包 g++-multilib

【讨论】:

以上是关于perl程序如何编译成二进制文件并使用的主要内容,如果未能解决你的问题,请参考以下文章

c语言是如何编译成二进制

总结1

程序编译链接后形成的可执行文件是啥文件

如何从二进制文件中读取块并使用 Python 或 Perl 解包提取结构?

python的程序可以编译成二进制可执行文件么

C语言——编译器如何将C源文件编译成可执行代码?