Phần mềm tôi đang làm việc trên các tàu với NETLIB BLAS/LAPACK được nhúng vào các nguồn của nó bằng cách sử dụng tên ký tự chữ thường, nhưng bây giờ trong khi chuyển ứng dụng sang cửa sổ, tôi phát hiện ra rằng Intel MKL và một số BLAS khác/LAPACK triển khai cho nền tảng này sử dụng tất cả các tên chữ hoa. Có cách nào để nói với trình biên dịch gnu/linker để bỏ qua trường hợp trong khi phù hợp với tên biểu tượng?gcc bỏ qua các tên biểu tượng trong khi liên kết
.
.
.
undefined reference to `_dgeqp3'
.
.
.
$ nm /lib/LAPACK.lib | grep -i " T _dgeqp3"
00000000 T _DGEQP3
Soạn gói NETLIB BLAS hoặc LAPACK với mingw gfortran, như chúng tôi đã làm cho đến nay, kết quả là các ký hiệu như ___dgeqp3___ (chữ thường, gạch dưới cuối cùng) nhưng bây giờ tôi muốn sử dụng các trình biên dịch và thư viện khác trên Windows và hầu hết BLAS Triển khai LAPACK được phân phối dưới dạng nhị phân có các tên biểu tượng như _DGEQP3 (chữ hoa, không có dấu gạch dưới cuối cùng) và một số thậm chí có _dgeqp3 (chữ thường, không có dấu gạch dưới cuối cùng). Chúng tôi đã có #define báo cáo để bao gồm dấu gạch dưới cuối cùng và nếu tôi không thể tìm thấy một cách xung quanh vấn đề này trường hợp nhạy cảm, tôi đoán chúng tôi sẽ phải tăng thêm cho phù hợp. –
@Cetin, đôi khi đó là cách mà cookie bị hỏng. Chúc may mắn! –