毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> linux >> 正文

gcc如何链接.a

更新时间:2013-2-5:  来源:毕业论文

gcc如何链接.a
我有一个别人的.a文件
要用到这个文件的下面函数
int FileEntrypt("642B194C7FBF4e09849A9FD2265A57FE","21.txt","22.txt","helloc");

于是我写了个b.c 毕业论文 

#include <stdio.h>
#include "a.h"


int main(int argc,char **argv)
{
FileEntrypt("i","k","k","ik");
}

然后我gcc -o b b.c a.a


/usr/bin/ld: warning: i386 architecture of input file `a.a(ccdrm.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `a.a(Entrypt.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `a.a(crypt.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `a.a(sha256.o)' is incompatible with i386:x86-64 output
/usr/bin/ld: warning: i386 architecture of input file `a.a(aes.o)' is incompatible with i386:x86-64 output
a.a(Entrypt.o): In function `nSetSerialNum':
Entrypt.c:(.text+0x9d): undefined reference to `__isoc99_sscanf'
collect2: ld returned 1 exit status


请问这个问题要怎么解决 新年祝福网页 

基本上是没办法做到,看上去是你的程序是32位的但是你想用的库是64位的。

把你的程序编译为64位试试呢
gcc -m64 .. 显然是.a和gcc的配置不符,一个是32位,另一个是64位。

从这个提示来看,i386 architecture of input file `a.a(ccdrm.o)'
我感觉.a是32位的,而gcc是64位的。
LZ可以用gcc -v看看,比如我的输出里有一行“Target: x86_64-redhat-linux”

解决的办法就是让这两个一致。
最好把.a的源代码拿来再编译一次。如果没有源码,那就只好修改gcc的配置,让他去配合.a的配置
也用32位编译试试呢
gcc -m32 ...

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。