老师为x86_64提供的库与我的系统不兼容

时间:2013-11-26 15:34:01

标签: c gcc 32bit-64bit x86-64 32-bit

我在学校接受了一项任务,我的讲座表明我们需要使用他预编译的C库,其中包含一个重要的函数定义。

我已经尝试从目录中删除所有当前的* .o文件,目前没有。

我目前的问题如下:

   i386:x86-64 architecture of input file `libnavigation.a(great_circle.o)' is    incompatible     with i386 output

其中libnavigation.a是包含great_circle函数的库名。

uname -ma

Linux chris-SATELLITE-PRO-C850 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:19:42 UTC 2013 i686 i686 i686 GNU/Linux

我尝试将几个命令选项添加到gcc

  1. -m32导致相同的错误错误:
  2. -m64会导致错误:

     gcc     -o dist/Debug/GNU-Linux-x86/c_assignment build/Debug/GNU-Linux-  
     x86/line_counter.o build/Debug/GNU-Linux-x86/main.o build/Debug/GNU-Linux-  
     x86/mayday.o  
    
     build/Debug/GNU-Linux-x86/rescue_assets.o build/Debug/GNU-Linux-x86/ship.o 
    
    build/Debug/GNU-
    
    Linux-x86/system_handler.o libnavigation.a -lm -m64
    /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: cannot find -lm
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.7/libgcc.a when 
    
    searching for -lgcc
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.7/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/i686-linux-gnu/4.7/libgcc.a when        
    
    searching for -lgcc
    /usr/bin/ld: cannot find -lgcc
    /usr/bin/ld: skipping incompatible /usr/lib/gcc/i686-linux-gnu/4.7/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
    
  3. 我不知道如何从这里开始,我已经问过老师但是还没有回复。

    谢谢, 克里斯。

2 个答案:

答案 0 :(得分:2)

有两种方法可以从这里开始

  1. 请教师编译32位库
  2. 使用64位Linux
  3. 64位库用于64位计算机,32位库用于32位计算机 这就是为什么软件编写者需要额外的努力来制作64位软件,因为64位硬件已经普遍使用。

答案 1 :(得分:0)

看起来您使用的是东芝SATELLITE PRO C850。该系列的所有笔记本电脑都配有64位CPU。

我建议重新安装操作系统,选择64位版本。请注意,64位操作系统可以运行32位代码。

如果您不希望或不允许重新安装,并且您的CPU是Intel i3或i5。您仍然可以安装VirtualBox并在其中创建一个64位VM,您可以在其中使用64位库。