首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译libunwind导致缺少共享库。

交叉编译libunwind导致缺少共享库。
EN

Stack Overflow用户
提问于 2022-11-25 21:48:20
回答 1查看 19关注 0票数 0

我试图使用以下命令交叉编译libunwindaarch64体系结构:

./configure --prefix=/home/test/libunwind/arm_build --libdir=/home/test/libunwind/arm_build/lib --target=aarch64 --host=x86_64 CC=/home/gcc-10.3/bin/aarch64-none-linux-gnu-gcc CXX=arm-none-linux-gnu-g++ LDFLAGS="-L$PWD/src/.libs" --enable-shared=yes

但是,这导致正在编译下列文件:

代码语言:javascript
复制
~/libunwind » tree arm_build                                                                                                                    
arm_build
├── include
│   ├── libunwind-aarch64.h
│   ├── libunwind-common.h
│   ├── libunwind-coredump.h
│   ├── libunwind-dynamic.h
│   ├── libunwind-ptrace.h
│   └── libunwind-x86.h
└── lib
    ├── libunwind-aarch64.a
    ├── libunwind-aarch64.la
    ├── libunwind-x86.a
    ├── libunwind-x86.la
    └── pkgconfig
        ├── libunwind-coredump.pc
        ├── libunwind-generic.pc
        └── libunwind-ptrace.pc

3 directories, 13 files

我还尝试在本机x86体系结构(./configure --prefix=/home/test/libunwind/x86_build )上构建它,以查看它是否生成共享库,并且它确实生成了共享库,如下所示:

代码语言:javascript
复制
~/libunwind » tree x86_build                                                                                                                    
x86_build                                                                                                                                                                         
├── include                                                                                                                                                                       
│   ├── libunwind-common.h                                                                                                                                                        
│   ├── libunwind-coredump.h                                                                                                                                                      
│   ├── libunwind-dynamic.h                                                                                                                                                       
│   ├── libunwind.h                                                                                                                                                               
│   ├── libunwind-ptrace.h                                                                                                                                                        
│   ├── libunwind-x86_64.h                                                                                                                                                        
│   └── unwind.h                                                                                                                                                                  
└── lib      
    ├── libunwind.a                                                                                                                                                               
    ├── libunwind-coredump.a
    ├── libunwind-coredump.la
    ├── libunwind-coredump.so -> libunwind-coredump.so.0.0.0
    ├── libunwind-coredump.so.0 -> libunwind-coredump.so.0.0.0
    ├── libunwind-coredump.so.0.0.0
    ├── libunwind-generic.a -> libunwind-x86_64.a
    ├── libunwind-generic.so -> libunwind-x86_64.so
    ├── libunwind.la
    ├── libunwind-ptrace.a
    ├── libunwind-ptrace.la
    ├── libunwind-ptrace.so -> libunwind-ptrace.so.0.0.0
    ├── libunwind-ptrace.so.0 -> libunwind-ptrace.so.0.0.0
    ├── libunwind-ptrace.so.0.0.0
    ├── libunwind-setjmp.a
    ├── libunwind-setjmp.la
    ├── libunwind-setjmp.so -> libunwind-setjmp.so.0.0.0
    ├── libunwind-setjmp.so.0 -> libunwind-setjmp.so.0.0.0
    ├── libunwind-setjmp.so.0.0.0
    ├── libunwind.so -> libunwind.so.8.0.1
...                

当我尝试交叉编译时,对于我可以尝试强制创建一个共享库,有什么潜在的建议吗?

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-26 20:12:21

好吧,我找到了答案。

TLDR:

代码语言:javascript
复制
./configure --enable-shared --prefix=/home/test/libunwind/arm_build --build=x86_64-pc-linux-gnu --host=aarch64-none-linux-gnu --libdir=/home/test/libunwind/arm_build/lib CC=/home/test/gcc-10.3/bin/aarch64-none-linux-gnu-gcc CXX=arm-none-linux-gnu-g++ LDFLAGS="-L$PWD/src/.libs"

如果在运行gcc 10.3时使用预先构建的编译器(我使用的是configure ),则似乎不应该指定目标。

我希望这会对其他人有所帮助。

代码语言:javascript
复制
~/libunwind » tree arm_build 
arm_build                                                                                                                                                                         
├── include                                                                                                                                                                       
│   ├── libunwind-aarch64.h                                                                                                                                                       
│   ├── libunwind-common.h                                                                                                                                                        
│   ├── libunwind-coredump.h                                                                                                                                                      
│   ├── libunwind-dynamic.h                                                                                                                                                       
│   ├── libunwind.h
│   ├── libunwind-ptrace.h
│   └── unwind.h
└── lib
    ├── libunwind.a
    ├── libunwind-aarch64.a
    ├── libunwind-aarch64.la
    ├── libunwind-aarch64.so -> libunwind-aarch64.so.8.0.1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74578089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档