Linux-如何把LINUX下写的C++程序编译成裸机代码。

Linux-如何把LINUX下写的C++程序编译成裸机代码。

甜柠檬 发布于 2016-12-07 字数 106 浏览 1260 回复 3

请教一个问题,如何把LINUX下写的C++程序编译成裸机代码。也就是一次编译完成之后,所有的LINUX上都能跑?

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

归属感 2017-09-30 3 楼

需要将C++程序编译成可移植性强的可执行程序。
1.学究一点来概括就是要遵循“POSIX”标准里面的接口。(POSIX是IEEE为要在各种UNIX操作系统上运行的软件,而定义API的一系列互相关联的标准的总称) 。
2.通俗一点, 从实践角度来看就是:
a. 尽量少用动态链接库,减少外部依赖。
b. 跟操作系统相关的接口调用,看下是否遵循posix标准。(比如线程的调用,有posix实现,也有非posix实现,尽量用posix实现 )
c. 如果程序中有硬件架构相关的比如64位,32位;CPU的类型。这些功能肯定没有办法做到很好的移植性。

浮生未歇 2017-08-07 2 楼

编译成静态的,gcc 参数加上-static 参数,可能有些动态库需要提供.a文件

晚风撩人 2017-03-03 1 楼

这是不可能的,Linux 兼容的架构太多了,其机器码也各有不同
编译成 i386 兼容的程序不能在 ARM 上跑,反之亦同