j***e 发帖数: 72 | 1 因为计算,用到Numerical Recipes 的几个库。
原先是可以把他编译,做成一个 libnum_rec.a 的库
然后把我的程序连上。
可是现在在Core 2 Duo 的 64 位Gentoo 上不行了。
提示
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/../../../../x86_64-pc-linux-gnu/bin/
ld: skipping incompatible ./num_rec/lib/libnum_rec.a when searching for -
lnum_rec
我是本地编译的这个 libnum_rec.a 啊,为什么还不兼容?
有什么办法能编译成64位,或者我可以使用的形式么?
有源码和configure.in, makefile.am |
k**m 发帖数: 222 | 2 我记得gcc/g++ -m32 可以把你的程序编译成32位的.
不知道有 -m64的选项否。 |
j***e 发帖数: 72 | 3 这是典型的一行编译命令。
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../inc -MT slvsml.o -MD -MP -MF ".
deps/slvsml.Tpo" -c -o slvsml.o slvsml.c; \
then mv -f ".deps/slvsml.Tpo" ".deps/slvsml.Po"; else rm -f ".deps/
slvsml.Tpo"; exit 1; fi
得到所有的.o文件后,ar 然后再 ranlib 的。
不知道这里有什么机关 |
h***s 发帖数: 19 | 4 难道源程序里面用到了一下编译相关的指令?
".
【在 j***e 的大作中提到】 : 这是典型的一行编译命令。 : if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../inc -MT slvsml.o -MD -MP -MF ". : deps/slvsml.Tpo" -c -o slvsml.o slvsml.c; \ : then mv -f ".deps/slvsml.Tpo" ".deps/slvsml.Po"; else rm -f ".deps/ : slvsml.Tpo"; exit 1; fi : 得到所有的.o文件后,ar 然后再 ranlib 的。 : 不知道这里有什么机关
|
k****f 发帖数: 3794 | 5 应该在gcc后面加个-m32,如果你想要32位
在link的时候,也要-m32
".
【在 j***e 的大作中提到】 : 这是典型的一行编译命令。 : if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../inc -MT slvsml.o -MD -MP -MF ". : deps/slvsml.Tpo" -c -o slvsml.o slvsml.c; \ : then mv -f ".deps/slvsml.Tpo" ".deps/slvsml.Po"; else rm -f ".deps/ : slvsml.Tpo"; exit 1; fi : 得到所有的.o文件后,ar 然后再 ranlib 的。 : 不知道这里有什么机关
|
j***e 发帖数: 72 | 6 我的gentoo是纯64环境。
试了给每个.o 编译的时候加 -m32,还是老问题。 |