简体   繁体   中英

Qt +musl system exception

Hi I build library in c++ and program in c++ that open dll, and it works. Problem is that when I want to open my dll using qt it's open it load symbols but after that when I want to use it and call some function I've got system exception. I read that mixing libgcc_s.so.1 maybe the problem, but I don't know what is the cause.

/tmp/install (3)/Release$ musl-ldd ./libx.so 
        musl-ldd (0x7fca78cea000)
Error loading shared library libgcc_s.so.1: No such file or directory (needed by ./libx.so)
    libc.musl-x86_64.so.1 => musl-ldd (0x7fca78cea000)
Error relocating ./libx.so: _Unwind_GetIPInfo: symbol not found
Error relocating ./libx.so: _Unwind_RaiseException: symbol not found
Error relocating ./libx.so: _Unwind_SetGR: symbol not found
Error relocating ./libx.so: _Unwind_GetDataRelBase: symbol not found
Error relocating ./libx.so: _Unwind_GetLanguageSpecificData: symbol not found
Error relocating ./libx.so: _Unwind_GetTextRelBase: symbol not found
Error relocating ./libx.so: _Unwind_DeleteException: symbol not found
Error relocating ./libx.so: _Unwind_GetRegionStart: symbol not found
Error relocating ./libx.so: _Unwind_Resume: symbol not found
Error relocating ./libx.so: _Unwind_SetIP: symbol not found
Error relocating ./libx.so: _Unwind_Resume_or_Rethrow: symbol not found

I've got kernel error:

Oct 25 22:52:31 x-VirtualBox kernel: [176384.989436] dlloader-x[4110792]: segfault at 0 ip 000055a23feac63e sp 00007fff15948050 error 4 in dlloader-x[55a23fea9000+5000]
Oct 25 22:52:31 x-VirtualBox kernel: [176384.989441] Code: 87 69 00 00 48 89 c7 e8 00 d4 ff ff 48 8d 85 50 ff ff ff 48 89 c7 e8 37 d5 ff ff 48 8d 85 50 ff ff ff 48 89 c7 e8 a0 01 00 00 <48> 8b 10 48 83 c2 10 48 8b 12 48 89 c7 ff d2 48 c7 85 28 ff ff ff

I tried to link libc static but without diffriece, probably it is problem of qt linker? Could someone help?

Your problem is that the linker is not finding libgcc_s.so at all. This library is the runtime library of gcc, it doesn't have anything to do with the libc (make sure you're not confusing it with the glibc)

If you're on alpine, install the libgcc package.

If not, make sure it exists in the search path of the musl dynamic linker.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM