chương trình của tôi biên dịch tốt mà không có -flto nhưng với -flto tôi nhận được lỗi này:Cách khắc phục lỗi liên kết "được xác định trong phần bị loại bỏ"?
% arm-none-eabi-g++ --version
arm-none-eabi-g++ (4.8.3-9+11) 4.8.3 20140820 (release)
Copyright (C) 2013 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
% arm-none-eabi-g++ -O2 -W -Wall -fPIE -flto -march=armv7-a -mfloat-abi=hard -mfpu=vfpv3-d16 -ffreestanding -nostdlib -std=gnu++11 -fno-exceptions -fno-rtti -c -o main.o main.cc
% arm-none-eabi-g++ -fPIE -nostdlib -O2 -flto boot.o memcpy.o font.o main.o -lgcc -Tlink-arm-eabi.ld -o kernel.elf
`memcpy' referenced in section `.text' of /tmp/ccYO5wE8.ltrans0.ltrans.o: defined in discarded section `.text' of memcpy.o (symbol from plugin)
collect2: error: ld returned 1 exit status
tôi đã cố gắng di chuyển memcpy.o vào các vị trí khác nhau để cố gắng đơn đặt hàng liên kết khác nhau nhưng lỗi luôn luôn là như nhau. Tôi đã thấy rằng đây là một vấn đề phổ biến nhưng không có câu trả lời cho câu hỏi trước được áp dụng. Tôi không có một bản cài đặt bị hỏng hoặc sử dụng các phiên bản biên dịch khác nhau để biên dịch. Tôi đang xây dựng một hạt nhân kim loại trần để không có bất kỳ thư viện bên ngoài nào khác ngoài libgcc.
Bất cứ ai cũng có ý tưởng về những gì đang diễn ra ở đó?
lỗi tương tự xảy ra với g ++ - 4.9.2 –