GCC 4.5 thêm hỗ trợ cho các dấu phẩy động thập phân trong thư viện thời gian chạy (http://gcc.gnu.org/gcc-4.5/changes.html). Tôi có thể biên dịch mã bao gồm, bằng cách sử dụng không gian tên std :: decimal, sau đó sử dụng decimal64 và như vậy trong mã.Làm thế nào để sử dụng dấu chấm thập phân trong Gnu C++ (g ++)?
Thật không may, tôi thiếu một số thư viện để liên kết mã. Tôi đã không thể tìm ra thư viện nào nên được yêu cầu. Hỗ trợ DFP được bật trong gcc (--enable-decimal-float = dpd)
Ngoài ra, nên có cách nào nhanh chóng cung cấp chữ số thập phân trong mã không? Bằng cách nhanh chóng, tôi có nghĩa là người dùng được xác định literals được xử lý bởi các mẫu và dịch tại thời gian biên dịch. Tôi không muốn cung cấp đôi được chuyển đổi tại thời gian chạy (mặc dù hiệu suất và thực tế là tôi thực sự không thể đứng đánh giá di chuyển từ thời gian biên dịch đến thời gian chạy vẫn còn làm tròn các vấn đề ...). Tôi đã tìm thấy hậu tố "df" nhưng điều đó dường như không được công nhận bởi trình biên dịch.
Tôi đang sử dụng phiên bản gcc 4.7.1 trên mục tiêu powerpc-ibm-aix7.1.0.0.
Linker thông báo lỗi:
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatsitd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_mulsd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_muldd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_multd3
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdisd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsdidd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatditd
ld: 0711-317 ERROR: Undefined symbol: .__dpd_floatunsditd
TIA.
Hậu tố chữ cho '_Decimal64' là' dd' ('df' là dành cho' _Decimal32'), nhưng điều đó không giải thích trình biên dịch không nhận ra sau (không kể đến các thói quen DPD). Bạn đã thử truyền '--enable-version-specific-runtime-libs' vào trình biên dịch chưa? –
Bạn có thực sự muốn chuyển tùy chọn đó tới trình biên dịch không? Nó không được công nhận. "g ++ -v" cho thấy bản thân trình biên dịch được cấu hình với tùy chọn được đề cập. – user1034081