64位linux下的GCC如何编译出一个32位可执行程序?

64位linux下的GCC如何编译出一个32位可执行程序?,第1张

理论上安装支持环境,之后64位的gcc编译成32位程序,就加-m32参数即可。

当然还一个办法是装个32位的gcc。

另外,交叉编迅纯译也适用于x86架构。

不过这么编译经常会出现各种问题,所以编译32位的程序,最好还是用32位系统

不一定重装,用chroot和setarch命令配合即可弄出一个32位的子系统。

一般64位系统最好不要安装亩者咐嫌租32位库的-dev,经常有冲突,强行安装会破坏64位环境,头文件并不像共享库分得那么完美。

我觉得比较好的做法是,重新把某一个文件夹当成rootfs,在里面安装各种32位的库和库-dev,然后给gcc传递参数"--sysroot=路径"就可以让gcc重新选取那个文件夹为rootfs,而不再认为/为rootfs。

Microsoft Visual Studio 是目前最热门的开发软件之一,现在最新的版本VS2015已实现跨平台开发。但是对于新手来说,有些地方还不懂得使用。作者在这里主要解释64位和32位项目的主槐蠢要区别。

键项目->属性->【生成 】选项卡。就会在目标平台下拉框那看到有3个选项,分别是Any CPU、x64、x86。

Any CPU: 生成的程序是兼容的。也就是说程序可以同时在32位或者64位系统中运行,推荐使陵首用这个选项。

x64: 生成的程铅汪陪序只能在64位系统中运行。如果你的用户用的是32位的系统(比如XP),则运行不了程序。

x32: 生成32位程序,由于64位系统也能运行32位的程序,所以这个选项跟Any CPU一样可以同时运行在两种系统中,但效率没有Any CPU高,因为64位的软件跟CPU交互的数据要比32位的接近大一倍。

所以当你要把项目代码转移到另一台计数机时,就要考虑这个问题。假如你原来选择的目标平台是x64,新电脑的系统是32位,当你按F5调试运行时,则跑不起来,这时把目标平台改成Any CPU或者x32就能解决了。

注意事项:

只有支持64位的CPU才能安装64位的系统,也就能运行64位的软件。目前市场上的CPU基本都是64位的CPU了,一些老的电脑就要注意这点。

如果你的项目引用有32位的dll(c++编译生成的),则只能选择32位平台,否则也会报错,整个项目要保持一致。

把小写字母和数字共36个字符放入 char t[36]

随机 字母数字 取法: t[rand()%36] ;

双循环铅简,j 200 个, i 32 个。

完整程序如下:

#include<stdio.h>

#include<time.h>

int main(){

char t[36]="abcdefghijklmnopqrstuvwxyz1234567890"

int i,j

srand(time(NULL)) // 种子

for (j=0j<200j++){

for (i=0i<32i++) printf("%c", t[rand()%36])

printf("\n")

}

return 0

}

输行枝出是随机的。例如档激敏:

o8l0vv9ncnkhmwt0y5vw1e5qldaiz6gf

63fpylvtno9lu63nmuzctb4z6scy7xvp

y1ef7yotx17zaz1wnqvd4v1v8o20lri5

.....


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12334669.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存