Hon*_*hen 7 c linker llvm clang
我已经在llvm-dev上阅读了这个帖子并且遇到了同样的问题:我无法在其帮助下将llvm-ar archieve库与其他bitcode文件链接到另一个bitcode文件中llvm-link.
clang -emit-llvm -g -c -o main.bc main.c
clang -emit-llvm -g -c -o calc.bc calc.c
llvm-ar rcs libcalc.la calc.bc
llvm-link libcalc.la main.bc -o test
Run Code Online (Sandbox Code Playgroud)
问题是一样的:llvm-link抱怨
llvm-link: libcalc.la:1:2: error: expected integer
!<arch>
^
Run Code Online (Sandbox Code Playgroud)
阅读如何将对象链接到LLVM> = 3.1的库?(没有GNU ld),我也尝试过llvm -9版本的llvm2.9 .
llvm-ld --disable-opt libcalc.la main.bc -o test
Run Code Online (Sandbox Code Playgroud)
然而,libcalc.la在没有连接到模块正确和lli报告:
LLVM ERROR: Program used external function 'Square' which could not be resolved!
Run Code Online (Sandbox Code Playgroud)
所以我该怎么做?
UPDATE
然后我读取从LLVM bitcode编译对象时无法链接到静态库.并在更改订单时发现llvm-ld工作:
llvm-ld --disable-opt main.bc libcalc.la -o test
Run Code Online (Sandbox Code Playgroud)
但llvm-link仍然失败.
llvm-link不支持bitcode档案,AFAIK.它简单地遍历它提供的输入文件,并尝试将每个文件解析为bitcode文件(二进制或文本LLVM IR).llvm-ld 在较新的LLVM中不存在,所以我建议完全远离它.只需将单独的.bc文件链接在一起即可llvm-link.无论如何,bitcode文件的归档对于链接器没有与本机链接相同的好处.
| 归档时间: |
|
| 查看次数: |
3885 次 |
| 最近记录: |