gcc7 ไม่สามารถคอมไพล์ประเภท float หลังจากที่ฉันเปลี่ยนฮาร์ดแวร์ของ ubuntu 18.04 (รวมถึง cpu และมาเธอร์บอร์ด) แม้ว่าฉันจะติดตั้ง gcc7 และแพ็คเกจ build-essential ฯลฯ อีกครั้ง cross build เช่น arm-linux-gnueabihf-gcc ก็ล้มเหลวเช่นกัน แต่เสียงกริ่งก็ทำงานได้ดีในเวลานั้น

รายละเอียดเพิ่มเติม:

แมว ac

int main()
    {
    float a=10000.0;
    return a/111;
    }

gcc -c ac

a.c: In function ‘main’:
a.c:29:5: internal compiler error: Illegal instruction
     float a=10000.0;
     ^~~~~

ฉันพยายามแก้ไขข้อบกพร่อง:

>gcc -O0 -c a.c -wrapper gdb,--args 
GNU gdb (Ubuntu 8.1.1-0ubuntu1) 8.1.1
...
Reading symbols from /usr/lib/gcc/x86_64-linux-gnu/7/cc1...(no debugging symbols found)...done.
(gdb) r
Starting program: /usr/lib/gcc/x86_64-linux-gnu/7/cc1 -quiet -imultiarch x86_64-linux-gnu a.c -quiet -dumpbase a.c -mtune=generic -march=x86-64 -auxbase a -O0 -fstack-protector-strong -Wformat -Wformat-security -o /tmp/ccWQLBBi.s

Program received signal SIGILL, Illegal instruction.
0x00007ffff736cd42 in __gmpn_mul_basecase () from /usr/local/lib/libgmp.so.10
(gdb) bt
#0  0x00007ffff736cd42 in __gmpn_mul_basecase () from /usr/local/lib/libgmp.so.10
#1  0xffffffffffffff01 in ?? ()
#2  0x00007fffffffcc70 in ?? ()
#3  0x00007fffffffcc60 in ?? ()
#4  0x0000000000000004 in ?? ()
#5  0x00007ffff736c7a6 in __gmpn_mul_n () from /usr/local/lib/libgmp.so.10
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

ดูเหมือนว่าจะล้มเหลวด้วย libgmp.so.10 ดังนั้นฉันจึงติดตั้งแพ็คเกจ libgmp10 ใหม่ แต่ก็ยังล้มเหลวด้วยปัญหาเดียวกัน

ไม่พบคำตอบ