Rus*_*kov 3 c shared-libraries 32bit-64bit
我在64位机器上使用ubuntu 12.04,我有这个简单的C代码:
int b = 20;
int c = 10;
int main(int argc, char **argv) {
c = 50;
}
Run Code Online (Sandbox Code Playgroud)
我试图通过编译它与任何IA32机器兼容:
unix> gcc -m32 code.c
Run Code Online (Sandbox Code Playgroud)
并得到这些错误:
/usr/bin/ld: cannot find crt1.o: No such file or directory
/usr/bin/ld: cannot find crti.o: No such file or directory
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find -lc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc.a when searching for -lgcc
/usr/bin/ld: cannot find -lgcc
/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.6/libgcc_s.so when searching for -lgcc_s
/usr/bin/ld: cannot find -lgcc_s
/usr/bin/ld: cannot find crtn.o: No such file or directory
collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)
据我所知,这种情况正在发生,因为我缺少32位标准C库,因此链接器无法将我的代码与标准C库链接.
如何在64位机器上获得所需的32个标准C?
试试这个:
apt-get install ia32-libs
Run Code Online (Sandbox Code Playgroud)
此外,您应该使用-m32编译/链接:
gcc -Wall -pedantic -m32 ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7758 次 |
| 最近记录: |