Redian新闻
>
编译 64/32 位的library (Linux)
avatar
编译 64/32 位的library (Linux)# Programming - 葵花宝典
j*e
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
avatar
k*m
2
我记得gcc/g++ -m32 可以把你的程序编译成32位的.
不知道有 -m64的选项否。
avatar
j*e
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 的。
不知道这里有什么机关
avatar
h*s
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 的。
: 不知道这里有什么机关

avatar
k*f
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 的。
: 不知道这里有什么机关

avatar
j*e
6
我的gentoo是纯64环境。
试了给每个.o 编译的时候加 -m32,还是老问题。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。