5 个解决方案
#2
gcc没有针对32位和64位系统的编译选项,不过lz加了static禁用程序使用动态库,目测去掉static选项就可以了。
#3
去掉static兼容性反而不好了,各系统的动态链接库文件差异很大
我知道可以指定生成32位二进制文件或者64位二进制文件,我现在想达到的效果是一个32位程序在32位系统和64位系统上都能运行
#4
编译成32bit程序
系统上装32bit支持库就行了。比如ub上装ia32-libs
系统上装32bit支持库就行了。比如ub上装ia32-libs
#5
-m32|-m64 指定编译的二进制对象的内存模型。
使用 -m32 来创建 32 位可执行文件和共享库。使用 -m64 来创建 64 位可执行文件和共享库。
http://docs.oracle.com/cd/E19205-01/821-0387/gewif/
使用 -m32 来创建 32 位可执行文件和共享库。使用 -m64 来创建 64 位可执行文件和共享库。
http://docs.oracle.com/cd/E19205-01/821-0387/gewif/
#1
楼主你应该是装了glibc.i686的。
或者别人的程序自己打包了所需的lib,我 曾经这么干过。
或者别人的程序自己打包了所需的lib,我 曾经这么干过。
#2
gcc没有针对32位和64位系统的编译选项,不过lz加了static禁用程序使用动态库,目测去掉static选项就可以了。
#3
去掉static兼容性反而不好了,各系统的动态链接库文件差异很大
我知道可以指定生成32位二进制文件或者64位二进制文件,我现在想达到的效果是一个32位程序在32位系统和64位系统上都能运行
#4
编译成32bit程序
系统上装32bit支持库就行了。比如ub上装ia32-libs
系统上装32bit支持库就行了。比如ub上装ia32-libs
#5
-m32|-m64 指定编译的二进制对象的内存模型。
使用 -m32 来创建 32 位可执行文件和共享库。使用 -m64 来创建 64 位可执行文件和共享库。
http://docs.oracle.com/cd/E19205-01/821-0387/gewif/
使用 -m32 来创建 32 位可执行文件和共享库。使用 -m64 来创建 64 位可执行文件和共享库。
http://docs.oracle.com/cd/E19205-01/821-0387/gewif/