<style id="sinamailpaperfilter">.sinamailpaper-0{cursor:text;}.sinamailpaper-0 td,.sinamailpaper-0 textarea,.sinamailpaper-0 input,.sinamailpaper-0 br,.sinamailpaper-0 div,.sinamailpaper-0 span{font-size:14px;font-family:"宋体",Verdana,Arial,Helvetica,sans-serif;line-height:1.5;}.sinamailpaper-0 p{*margin:0.2em auto;}.sinamailpaper-0 img{border:0;}.sinamailpaper-0 pre{white-space:normal;}.sinamailpaper-0 form{margin:0;}</style><P>Hi,<BR>This is Crystal. I have some questions about llvm-gcc. Could you please give me some advice? Thanks in advance.</P>
<P>Problem description:</P>
<P>Env:<BR>llvm-gcc (GCC) 4.2.1<BR>gcc (GCC) 4.1.2<BR>OS:fedora7<BR>I tried to compile a C programme test.c with llvm-gcc by task:<BR>[root@localhost mylib]# llvm-gcc -emit-llvm test.c -Llibmylib.a -c -o test.bc<BR>[root@localhost mylib]# lli test.bc </P>
<P>after running the command "lli test.bc",print the error info as follows:<BR>ERROR: Program used external function 'gt' which could not be resolved!<BR>lli[0x85c245f]<BR>/lib/libc.so.6(abort+0x101)[0x6988b1]<BR>lli(_ZN4llvm3JIT25getPointerToNamedFunctionERKSs+0xd2)[0x8267952]<BR>Aborted</P>
<P>Static libraries are produced by these 3 ways below, but always got the same issue:<BR>1.<BR># llvm-gcc -c mylib.c<BR># llvm-ar cr libmylib.a mylib.o<BR>2.<BR># llvm-gcc -c mylib.c<BR># ar cr libmylib.a mylib.o<BR>3.<BR># gcc -c mylib.c<BR># ar cr libmylib.a mylib.o</P>
<P>I have to analyse c program with some static libraries by LLVM bitcode files .</P>
<P>Here is my test code:<BR>======================<BR>test.c:<BR>----------------------<BR>#include<stdio.h><BR>#include<string.h><BR>#include"mylib.h"<BR>int main(void){<BR>        int len = 10;<BR>        if (gt(&len) == 0){<BR>                printf("call mylib function gt successfully!\n");<BR>        }<BR>        else{<BR>                printf("call mylib function gt fail!\n");<BR>        }<BR>        return 0;<BR>}</P>
<P>mylib.h:<BR>------------------------<BR>#ifndef MYLIB_H<BR>#define MYLIB_H<BR>int gt(int *len);<BR>#endif</P>
<P>mylib.c :<BR>------------------------<BR>#include<stdio.h><BR>#include<string.h><BR>#include"mylib.h"<BR>int gt( int *length){<BR>        int len;<BR>        len = *length;<BR>        printf("Mylib be call, parameter length is %d\n",len);<BR>        return 0;<BR>}</P><hr /><br /><a href = 'http://space.sina.com.cn/ '>新浪空间——与朋友开心分享网络新生活!</a>