我在学校接受了一项任务,我的讲座表明我们需要使用他预编译的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
-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
我不知道如何从这里开始,我已经问过老师但是还没有回复。
谢谢, 克里斯。
答案 0 :(得分:2)
有两种方法可以从这里开始
64位库用于64位计算机,32位库用于32位计算机 这就是为什么软件编写者需要额外的努力来制作64位软件,因为64位硬件已经普遍使用。
答案 1 :(得分:0)
看起来您使用的是东芝SATELLITE PRO C850。该系列的所有笔记本电脑都配有64位CPU。
我建议重新安装操作系统,选择64位版本。请注意,64位操作系统可以运行32位代码。
如果您不希望或不允许重新安装,并且您的CPU是Intel i3或i5。您仍然可以安装VirtualBox并在其中创建一个64位VM,您可以在其中使用64位库。