我试图使用以下命令交叉编译libunwind到aarch64体系结构:
./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
但是,这导致正在编译下列文件:
~/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 )上构建它,以查看它是否生成共享库,并且它确实生成了共享库,如下所示:
~/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
... 当我尝试交叉编译时,对于我可以尝试强制创建一个共享库,有什么潜在的建议吗?
提前谢谢你。
发布于 2022-11-26 20:12:21
好吧,我找到了答案。
TLDR:
./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 ),则似乎不应该指定目标。
我希望这会对其他人有所帮助。
~/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.1https://stackoverflow.com/questions/74578089
复制相似问题