如何生成可以在Unix和Linux上运行的可执行文件
How to generate executable file that can run on both Unix and Linux?
我正在使用g++(在linux下)编译一段c代码。编译后的可执行文件在linux上运行良好。但是它不能在unix(SunOS)上运行。如何使编译的文件在Unix和Linux上运行?谢谢你。
POSIX.1标准保证了源代码的兼容性。这就是说,每个使用POSIX.1 api编写的程序都可以保证在任何POSIX平台上编译和运行。POSIX没有也从来没有保证二进制文件在不同的平台之间是可移植的,即使它们都是兼容的。
不要假设您可以在不同的平台上执行相同的二进制文件。虽然有一些工具包提供不同级别的仿真,但这并不总是有效的。
对于执行Linux二进制文件的特殊情况,有一些解决方案,如用于Solaris的lxrun或内置的系统调用转换层,它将Linux映射到FreeBSD上的FreeBSD系统调用。
lxrun是一个实用程序,它允许Linux二进制文件在各种其他类unix平台上运行,包括Solaris。
这不仅仅是二进制生成,您的链接器将链接您的系统使用的库。这已经在不同的linux发行版上有所不同了!如果你真的想创建一个独立于平台的二进制文件,请使用Java或使用llvm编译c++程序。
当你将C代码编译成llvm字节码时,它可以用lli来解释。您可以向lili提供所需的所有本机。so文件,它将能够执行代码。我对结果很满意。
相关文章:
- 如何在linux终端中同时编译和运行c++代码
- 函数在Windows或Linux上运行时表现不同
- 如何在CPP中创建应该在Windows和Linux上运行的套接字?
- 在 Linux 群集上运行 Windows C++代码
- [longjmp/setjmp]c++ 相同的代码窗口有异常 Linux 没有错误并且运行良好
- 有没有办法让我编写一个可以在Windows和Linux上运行的命令行游戏?
- 无法在 Linux 上运行C++ ZMQ 项目的可执行文件
- 我在使用 boost::serialization 时遇到了一个问题,我的代码在 Linux 中运行良好,但在 Wind
- 如果从脚本运行应用程序,则在 Linux 中使用 GDB
- 在 Linux 上C++:在作为 systemd 服务运行时侦听键盘输入
- 在 linux 原因上运行自定义原型插件
- 从Raspberry Pi / Linux上的Python脚本运行和停止C++程序
- 在 Linux 上没有 /proc/self/exe 的 C/C++ 运行时可执行文件的大小?
- C++ Linux 运行时basic_string::_M_construct null 无效错误
- Opendir() 在带有空格的名称上失败,在 Linux 上运行
- 在Windows上运行Linux Makefile(.so文件)
- 如何在 Linux 运行时检查堆栈使用情况?
- Netbeans C/C++ on Linux "step in to" Linux C 运行时代码?
- 在Linux运行时重写libstdc++搜索路径
- Linux - 运行 valgrind 时不会出现源文件/行