Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Biểu tượng yêu thích OnWorks

aarch64-linux-gnu-gfortran - Trực tuyến trên đám mây

Chạy aarch64-linux-gnu-gfortran trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks qua Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh aarch64-linux-gnu-gfortran có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


gfortran - trình biên dịch GNU Fortran

SYNOPSIS


gfortran [-c|-S|-E]
[-g] [-pg] [-Ocấp]
[-Wcảnh báo...] [- mang tính mô phạm]
[-Idir...] [-Ldir...]
[-Dvĩ mô[=định nghĩa] ...] [-Uvĩ mô]
[-ftùy chọn...]
[-mtùy chọn máy...]
[-o ô uế] trong tập tin...

Chỉ những tùy chọn hữu ích nhất được liệt kê ở đây; xem phần còn lại bên dưới.

MÔ TẢ


Sản phẩm gfortran lệnh hỗ trợ tất cả các tùy chọn được hỗ trợ bởi gcc chỉ huy. Chỉ các tùy chọn
cụ thể cho GNU Fortran được ghi lại ở đây.

Tất cả các tùy chọn GCC và GNU Fortran đều được chấp nhận bởi gfortran và bởi gcc (cũng như bất kỳ
các trình điều khiển khác được xây dựng cùng lúc, chẳng hạn như g ++), kể từ khi thêm GNU Fortran vào GCC
phân phối cho phép chấp nhận các tùy chọn GNU Fortran bởi tất cả các trình điều khiển có liên quan.

Trong một số trường hợp, các quyền chọn có dạng tích cực và tiêu cực; dạng phủ định của -foo sẽ
be -fno-foo. Sổ tay hướng dẫn này chỉ tài liệu một trong hai biểu mẫu này, biểu mẫu nào không phải là
mặc định.

LỰA CHỌN


Dưới đây là tóm tắt về tất cả các tùy chọn dành riêng cho GNU Fortran, được nhóm theo loại.
Giải thích có trong các phần sau.

Fortran Ngôn ngữ Các lựa chọn
-cụ thể-bản chất -fbackslash -fcray-con trỏ -fd-dòng-dưới dạng mã -fd-lines-as-bình luận
-fdefault-double-8 -fdefault-số nguyên-8 -fdefault-real-8 -fđô la-ok
-fixed-line-length-n -fixed-line-length-none -free-form -dòng-dài-tự-do-n
-ffree-line-length-none -fimplicit-không có -finteger-4-số nguyên-8 -fmax-định danh-chiều dài
-fmodule-riêng tư -fixed-mẫu -fno-phạm vi-kiểm tra -fopenacc -fopenmp -freal-4-real-10
-freal-4-real-16 -freal-4-real-8 -freal-8-real-10 -freal-8-real-16 -freal-8-real-4
-std =tiêu chuẩn

Sơ chế Các lựa chọn
-MỘT-câu hỏi[=trả lời] -Acâu hỏi=trả lời -C -CC -Dvĩ mô[=định nghĩa] -H -P -Uvĩ mô -cpp -dD
-dI -dM -dN -dU -fworking-thư mục -imultilib dir -iprefix hồ sơ -cài dẫn -isysroot dir
-hệ thống dir -nocpp -nostdinc -nằm

lỗi Cảnh báo Các lựa chọn
-Mang tính -Tường -Wampersand -Warray-giới hạn -Kiểu ràng buộc c - Cắt ngắn ký tự
-Chuyển đổi - Loại bỏ chức năng -Giao diện rõ ràng -Quy trình rõ ràng
- Nội tại-bóng tối -Chỉ sử dụng mà không -Wintrinsics-std -Cắt bớt đường dây
-Wno-align-common -Không có tab -Thực tế-q-hằng số -Không ngờ -Wunderflow
-Không sử dụng-tham số -Wrealloc-lhs -Wrealloc-lhs-tất cả -Mục tiêu-trọn đời -fmax-error =n
-chỉ tổng hợp - mang tính mô phạm -pedantic-error

Gỡ lỗi Các lựa chọn
-fbacktrace -fdump-fortran-tối ưu hóa -fdump-fortran-gốc -fdump-parse-cây
-ffpe-trap = -ffpe-Summary =

thư mục Các lựa chọn
-Idir -Jdir -fintri nội-mô-đun-đường dẫn dir

liên kết Các lựa chọn
-static-libgfortran

Runtime Các lựa chọn
-fconvert =Chuyển đổi -fmax-subrecord-length =chiều dài -frecord-marker =chiều dài -fsign-không

Thế hệ Các lựa chọn
-suy phạm-chức năng-loại bỏ -fblas-matmul-limit =n -fbounds-kiểm tra
-fcheck-mảng-thời gian tạm thời -fcheck =
-fcoarray = -fexternal-blas -ff2c -ffrontend-tối ưu hóa
-finit-character =n -finit-integer =n -finit-local-zero -finit-logic =
-finit-real = -fmax-array-constructor =n -fmax-stack-var-size =n
-fno-align-common -không tự động -fno-bảo vệ-parens -fno-gạch dưới
-second-gạch dưới -fpack-có nguồn gốc -frealloc-lhs -phản xạ -frepack-array
-fshort-enums -fstack-array

Các lựa chọn kiểm soát Fortran phương ngữ
Các tùy chọn sau kiểm soát các chi tiết của phương ngữ Fortran được chấp nhận bởi trình biên dịch:

-free-form
-fixed-mẫu
Chỉ định bố cục được sử dụng bởi tệp nguồn. Bố cục biểu mẫu miễn phí đã được giới thiệu trong
Fortran 90. Dạng cố định thường được sử dụng trong các chương trình Fortran cũ hơn. Khi nào
không có tùy chọn nào được chỉ định, dạng nguồn được xác định bởi phần mở rộng tệp.

-cụ thể-bản chất
Tùy chọn này khiến tất cả các thủ tục nội tại (bao gồm cả các phần mở rộng dành riêng cho GNU)
Được chấp nhận. Điều này có thể hữu ích với -std = f95 để buộc tuân thủ tiêu chuẩn nhưng nhận được
truy cập vào đầy đủ các nội dung có sẵn với gfortran. Hậu quả là
-Wintrinsics-std sẽ bị bỏ qua và không có thủ tục do người dùng xác định có cùng tên với
bất kỳ nội tại nào sẽ được gọi ngoại trừ khi nó được khai báo rõ ràng là "BÊN NGOÀI".

-fd-dòng-dưới dạng mã
-fd-lines-as-bình luận
Cho phép xử lý đặc biệt cho các dòng bắt đầu bằng "d" hoặc "D" trong các nguồn biểu mẫu cố định.
Nếu -fd-dòng-dưới dạng mã tùy chọn được đưa ra, chúng được coi như là cột đầu tiên
chứa một khoảng trống. Nếu -fd-lines-as-bình luận tùy chọn được đưa ra, chúng được coi là
những dòng bình luận.

-fđô la-ok
Cho phép $ là một ký tự không phải ký tự đầu tiên hợp lệ trong tên ký hiệu. Các ký hiệu bắt đầu bằng $ đang
bị từ chối vì không rõ quy tắc nào sẽ áp dụng cho việc nhập ẩn là khác
nhà cung cấp thực hiện các quy tắc khác nhau. Sử dụng $ trong câu lệnh "IMPLICIT" cũng bị từ chối.

-fbackslash
Thay đổi cách diễn giải dấu gạch chéo ngược trong các ký tự chuỗi từ một dấu gạch chéo ngược đơn lẻ
ký tự để thoát ký tự "C-style". Các kết hợp sau được mở rộng
"\ a", "\ b", "\ f", "\ n", "\ r", "\ t", "\ v", "\\" và "\ 0" cho các ký tự ASCII
cảnh báo, xóa lùi, nguồn cấp dữ liệu biểu mẫu, dòng mới, xuống dòng, tab ngang, tab dọc,
dấu gạch chéo ngược và NUL, tương ứng. Ngoài ra, "\ x"nn, "\ u"nnnn và bạn"nnnnnnnn
(mỗi nơi n là một chữ số thập lục phân) được dịch sang các ký tự Unicode
tương ứng với các điểm mã được chỉ định. Tất cả các kết hợp khác của một ký tự
đứng trước \ không được mở rộng.

-fmodule-riêng tư
Đặt khả năng truy cập mặc định của các thực thể mô-đun thành "RIÊNG TƯ". Liên quan đến sử dụng
các thực thể sẽ không thể truy cập được trừ khi chúng được khai báo rõ ràng là "CÔNG KHAI".

-fixed-line-length-n
Đặt cột sau đó các ký tự bị bỏ qua trong các dòng dạng cố định điển hình trong
tệp nguồn và thông qua khoảng trống nào được giả định (như thể được đệm vào độ dài đó) sau
phần cuối của các đường dạng cố định ngắn.

Giá trị phổ biến cho n bao gồm 72 (tiêu chuẩn và mặc định), 80 (hình thẻ), và
132 (tương ứng với các tùy chọn "nguồn mở rộng" trong một số trình biên dịch phổ biến). n có thể
cũng là không ai, nghĩa là toàn bộ dòng có ý nghĩa và ký tự tiếp tục đó
hằng số không bao giờ có khoảng trắng ngầm được thêm vào chúng để điền vào dòng.
-fixed-line-length-0 có nghĩa giống như -fixed-line-length-none.

-dòng-dài-tự-do-n
Đặt cột sau đó các ký tự bị bỏ qua trong các dòng dạng tự do điển hình trong nguồn
tập tin. Giá trị mặc định là 132. n có lẽ không ai, nghĩa là toàn bộ dòng là
có ý nghĩa. -ffree-line-length-0 có nghĩa giống như -ffree-line-length-none.

-fmax-định danh-chiều dài =n
Chỉ định độ dài số nhận dạng tối đa được phép. Các giá trị điển hình là 31 (Fortran 95) và
63 (Fortran 2003 và Fortran 2008).

-fimplicit-không có
Chỉ định rằng không được phép nhập ẩn, trừ khi bị ghi đè bởi "IMPLICIT" rõ ràng
các câu lệnh. Điều này tương đương với việc thêm "ẩn không có" vào đầu mỗi
thủ tục.

-fcray-con trỏ
Bật tiện ích mở rộng con trỏ Cray, cung cấp chức năng con trỏ giống C.

-fopenacc
Bật tiện ích mở rộng OpenACC. Điều này bao gồm lệnh OpenACC "! $ Acc" ở dạng miễn phí
và các lệnh "c $ acc", * $ acc và "! $ acc" ở dạng cố định, biên dịch có điều kiện "! $"
lính canh ở dạng tự do và "c $", "* $" và "! $" ở dạng cố định và khi nào
sắp xếp liên kết để thư viện thời gian chạy OpenACC được liên kết trong.

Lưu ý rằng đây là một tính năng thử nghiệm, chưa hoàn chỉnh và có thể thay đổi trong tương lai
phiên bản của GCC. Nhìn thấyhttps://gcc.gnu.org/wiki/OpenACC> để biết thêm thông tin.

-fopenmp
Bật tiện ích mở rộng OpenMP. Điều này bao gồm các lệnh OpenMP "! $ Omp" ở dạng miễn phí
và các lệnh "c $ omp", * $ omp và "! $ omp" ở dạng cố định, biên dịch có điều kiện "! $"
lính canh ở dạng tự do và "c $", "* $" và "! $" ở dạng cố định và khi nào
sắp xếp liên kết để thư viện thời gian chạy OpenMP được liên kết. Tùy chọn -fopenmp
ngụ ý -phản xạ.

-fno-phạm vi-kiểm tra
Tắt tính năng kiểm tra phạm vi dựa trên kết quả đơn giản hóa các biểu thức hằng trong
biên dịch. Ví dụ: GNU Fortran sẽ báo lỗi tại thời điểm biên dịch khi
đơn giản hóa "a = 1/0". Với tùy chọn này, không có lỗi nào được đưa ra và "a" sẽ là
được gán giá trị "+ Infinity". Nếu một biểu thức đánh giá một giá trị bên ngoài
phạm vi liên quan của ["-HUGE ()": "HUGE ()"], khi đó biểu thức sẽ được thay thế bằng "-Inf"
hoặc "+ Inf" nếu thích hợp. Tương tự, "DATA i / Z'FFFFFFFF '/" sẽ dẫn đến một số nguyên
tràn trên hầu hết các hệ thống, nhưng với -fno-phạm vi-kiểm tra giá trị sẽ "quấn quanh" và
"i" sẽ được khởi tạo thành -1.

-fdefault-số nguyên-8
Đặt kiểu số nguyên và lôgic mặc định thành kiểu rộng 8 byte. Tùy chọn này cũng
ảnh hưởng đến loại hằng số nguyên như 42. Không giống như -finteger-4-số nguyên-8, nó có
không quảng bá các biến với khai báo loại rõ ràng.

-fdefault-real-8
Đặt kiểu thực mặc định thành kiểu rộng 8 byte. Tùy chọn này cũng ảnh hưởng đến loại
các hằng số thực không kép như 1.0 và không thúc đẩy chiều rộng mặc định của "DOUBLE
PRECISION "đến 16 byte nếu có thể, trừ khi" -fdefault-double-8 "cũng được cung cấp. Không giống như
-freal-4-real-8, nó không thúc đẩy các biến với khai báo loại rõ ràng.

-fdefault-double-8
Đặt loại "ĐÔI CHÍNH XÁC" thành loại rộng 8 byte. Không làm gì nếu điều này đã được
mặc định. Nếu như -fdefault-real-8 được đưa ra, "DOUBLE PRECISION" thay vào đó sẽ là
được thăng cấp lên 16 byte nếu có thể và -fdefault-double-8 có thể được sử dụng để ngăn chặn điều này.
Loại hằng số thực như "1.d0" sẽ không bị thay đổi bởi -fdefault-real-8 Tuy nhiên,
nên cũng -fdefault-double-8 không ảnh hưởng đến nó.

-finteger-4-số nguyên-8
Quảng bá tất cả các thực thể "INTEGER (KIND = 4)" thành một thực thể "INTEGER (KIND = 8)". Nếu "KIND = 8"
không khả dụng, sau đó sẽ xuất hiện lỗi. Tùy chọn này nên được sử dụng cẩn thận
và có thể không phù hợp với mã của bạn. Các lĩnh vực có thể quan tâm bao gồm các cuộc gọi đến
các thủ tục bên ngoài, sự liên kết trong "EQUIVALENCE" và / hoặc "COMMON", các giao diện chung,
Chuyển đổi liên tục theo nghĩa đen BOZ và I / O. Kiểm tra trung gian
đại diện cho mã Fortran đã dịch, được sản xuất bởi -fdump-cây-gốc, Là
đề nghị.

-freal-4-real-8
-freal-4-real-10
-freal-4-real-16
-freal-8-real-4
-freal-8-real-10
-freal-8-real-16
Quảng bá tất cả các thực thể "REAL (KIND = M)" thành các thực thể "REAL (KIND = N)". Nếu "REAL (KIND = N)" là
không có sẵn, sau đó một lỗi sẽ được phát hành. Tất cả các loại thực khác không bị ảnh hưởng
bởi tùy chọn này. Các tùy chọn này nên được sử dụng cẩn thận và có thể không phù hợp với
mã của bạn. Các lĩnh vực có thể quan tâm bao gồm các cuộc gọi đến các thủ tục bên ngoài, sự liên kết
trong "EQUIVALENCE" và / hoặc "COMMON", giao diện chung, chuyển đổi không đổi theo nghĩa đen BOZ,
và I / O. Kiểm tra đại diện trung gian của Fortran đã dịch
mã, được sản xuất bởi -fdump-cây-gốc, Được gợi ý.

-std =tiêu chuẩn
Chỉ định tiêu chuẩn mà chương trình dự kiến ​​sẽ tuân theo, tiêu chuẩn này có thể là một trong những
f95, f2003, f2008, dê rừng, hoặc là di sản. Giá trị mặc định cho tiêu chuẩn is dê rừng, chỉ định
một tập hợp siêu của tiêu chuẩn Fortran 95 bao gồm tất cả các phần mở rộng được hỗ trợ bởi
GNU Fortran, mặc dù các cảnh báo sẽ được đưa ra đối với các tiện ích mở rộng lỗi thời không được khuyến nghị
để sử dụng trong mã mới. Các di sản giá trị tương đương nhưng không có cảnh báo cho
các phần mở rộng lỗi thời và có thể hữu ích cho các chương trình cũ không chuẩn. Các f95, f2003
f2008 các giá trị chỉ định sự tuân thủ nghiêm ngặt đối với Fortran 95, Fortran 2003 và
Tiêu chuẩn Fortran 2008, tương ứng; lỗi được đưa ra cho tất cả các tiện ích mở rộng ngoài
tiêu chuẩn ngôn ngữ có liên quan và các cảnh báo được đưa ra cho các tính năng của Fortran 77
được cho phép nhưng lỗi thời trong các tiêu chuẩn sau này. -std = f2008ts cho phép Fortran 2008
tiêu chuẩn bao gồm các bổ sung của Đặc điểm kỹ thuật (TS) 29113 về
Khả năng tương tác của Fortran với C và TS 18508 về Các tính năng song song bổ sung trong
Fortran.

Kích hoạt tính năng tùy chỉnh sơ chế
Các tùy chọn liên quan đến bộ tiền xử lý. Xem phần Sơ chế có điều kiện biên soạn cho
thông tin chi tiết hơn về tiền xử lý trong gfortran.

-cpp
-nocpp
Bật tiền xử lý. Bộ tiền xử lý tự động được gọi nếu phần mở rộng tệp
is .fpp, .FPP, .F, .VÌ, .FTN, .F90, .F95, .F03 or .F08. Sử dụng tùy chọn này để thủ công
cho phép xử lý trước bất kỳ loại tệp Fortran nào.

Để vô hiệu hóa việc xử lý trước các tệp bằng bất kỳ tiện ích mở rộng nào được liệt kê ở trên, hãy sử dụng
thể phủ định: -nocpp.

Bộ tiền xử lý được chạy ở chế độ truyền thống. Bất kỳ hạn chế nào của định dạng tệp,
đặc biệt là các giới hạn về độ dài dòng, cũng áp dụng cho đầu ra được xử lý trước, vì vậy nó
có thể được khuyến khích sử dụng -ffree-line-length-none or -fixed-line-length-none
tùy chọn.

-dM Thay vì đầu ra bình thường, hãy tạo danh sách các lệnh '#define' cho tất cả các
các macro được xác định trong quá trình thực thi bộ xử lý trước, bao gồm các macro được xác định trước.
Điều này cung cấp cho bạn một cách để tìm ra những gì được xác định trước trong phiên bản
bộ tiền xử lý. Giả sử bạn không có tệp foo.f90, lệnh

chạm vào foo.f90; gfortran -cpp -E -dM foo.f90

sẽ hiển thị tất cả các macro được xác định trước.

-dD Như -dM ngoại trừ hai khía cạnh: nó không bao gồm các macro được xác định trước và nó
xuất ra cả chỉ thị "#define" và kết quả của quá trình tiền xử lý. Cả hai loại
đầu ra chuyển đến tệp đầu ra tiêu chuẩn.

-dN Như -dD, nhưng chỉ phát ra các tên macro, không phát ra các tên mở rộng của chúng.

-dU Như dD ngoại trừ việc chỉ các macro được mở rộng hoặc có độ xác định được kiểm tra trong
chỉ thị tiền xử lý, là đầu ra; đầu ra bị trì hoãn cho đến khi sử dụng hoặc kiểm tra
vĩ mô; và các chỉ thị '#undef' cũng được xuất cho các macro được kiểm tra nhưng chưa được xác định tại
thời gian.

-dI Đầu ra các lệnh '#include' ngoài kết quả của quá trình xử lý trước.

-fworking-thư mục
Cho phép tạo dấu dòng trong đầu ra của bộ xử lý trước để cho phép trình biên dịch
biết thư mục làm việc hiện tại tại thời điểm tiền xử lý. Khi tùy chọn này là
được kích hoạt, bộ xử lý trước sẽ phát ra, sau bộ đánh dấu dòng ban đầu, bộ đánh dấu dòng thứ hai
với thư mục làm việc hiện tại, theo sau là hai dấu gạch chéo. GCC sẽ sử dụng cái này
thư mục, khi nó có trong đầu vào được xử lý trước, khi thư mục được phát ra dưới dạng
thư mục làm việc hiện tại ở một số định dạng thông tin gỡ lỗi. Tùy chọn này là
được bật ngầm nếu thông tin gỡ lỗi được bật, nhưng điều này có thể bị hạn chế với
hình thức phủ định -fno-làm việc-thư mục. Nếu -P cờ có trong lệnh
dòng, tùy chọn này không có hiệu lực, vì không có lệnh "#line" nào được phát ra.

-đi sau dir
Tìm kiếm dir cho các tệp bao gồm, nhưng hãy làm điều đó sau tất cả các thư mục được chỉ định với -I
các thư mục hệ thống tiêu chuẩn đã hết. dir được coi như một hệ thống
bao gồm thư mục. Nếu dir bắt đầu bằng "=", thì "=" sẽ được thay thế bằng
tiền tố sysroot; Thấy chưa --sysroot-isysroot.

-imultilib dir
Sử dụng dir dưới dạng thư mục con của thư mục chứa tiêu đề C ++ dành riêng cho mục tiêu.

-iprefix tiếp đầu ngữ
Chỉ định tiếp đầu ngữ làm tiền tố cho tiếp theo -iwithprefix tùy chọn. Nếu tiếp đầu ngữ
đại diện cho một thư mục, bạn nên bao gồm '/' cuối cùng.

-isysroot dir
Tùy chọn này giống như --sysroot nhưng chỉ áp dụng cho các tệp tiêu đề. Xem
--sysroot để biết thêm thông tin.

-cài dẫn dir
Tìm kiếm dir chỉ dành cho các tệp tiêu đề được yêu cầu với "#include" tệp ""; họ không phải
đã tìm kiếm "#include ", trước tất cả các thư mục được chỉ định bởi -I và trước khi
thư mục hệ thống tiêu chuẩn. Nếu như dir bắt đầu bằng "=", sau đó "=" sẽ được thay thế bằng
tiền tố sysroot; Thấy chưa --sysroot-isysroot.

-hệ thống dir
Tìm kiếm dir cho các tệp tiêu đề, sau tất cả các thư mục được chỉ định bởi -I nhưng trước khi
thư mục hệ thống tiêu chuẩn. Đánh dấu nó là một thư mục hệ thống, để nó giống nhau
đối xử đặc biệt như được áp dụng cho các thư mục hệ thống tiêu chuẩn. Nếu như dir bắt đầu với
"=", sau đó "=" sẽ được thay thế bằng tiền tố sysroot; Thấy chưa --sysroot-isysroot.

-nostdinc
Không tìm kiếm các thư mục hệ thống tiêu chuẩn cho các tệp tiêu đề. Chỉ các thư mục
bạn đã chỉ định với -I tùy chọn (và thư mục của tệp hiện tại, nếu
thích hợp) được tìm kiếm.

-nằm
Không xác định trước bất kỳ macro nào dành riêng cho hệ thống hoặc macro cụ thể cho GCC. Tiêu chuẩn được xác định trước
macro vẫn được xác định.

-AThuộc tính=trả lời
Khẳng định với vị ngữ Thuộc tính và câu trả lời trả lời. Hình thức này là
được ưu tiên hơn dạng cũ hơn -A vị ngữ (câu trả lời), vẫn được hỗ trợ, vì nó
không sử dụng các ký tự đặc biệt của shell.

-MỘT-Thuộc tính=trả lời
Hủy một khẳng định với vị ngữ Thuộc tính và câu trả lời trả lời.

-C Không loại bỏ các bình luận. Tất cả các nhận xét được chuyển đến tệp đầu ra, ngoại trừ
đối với các nhận xét trong các lệnh đã xử lý, các nhận xét này sẽ bị xóa cùng với lệnh.

Bạn nên chuẩn bị cho các tác dụng phụ khi sử dụng -C; nó khiến bộ tiền xử lý
coi các bình luận như các mã thông báo theo đúng nghĩa của chúng. Ví dụ: các nhận xét xuất hiện tại
bắt đầu của những gì sẽ là một dòng chỉ thị có tác dụng biến dòng đó thành một
dòng nguồn thông thường, vì mã thông báo đầu tiên trên dòng không còn là '#'.

Cảnh báo: điều này hiện chỉ xử lý các nhận xét C-Style. Bộ xử lý trước chưa
nhận ra các bình luận kiểu Fortran.

-CC Không loại bỏ nhận xét, kể cả khi mở rộng macro. Điều này giống như -C, ngoại trừ
rằng các nhận xét có trong macro cũng được chuyển đến tệp đầu ra, nơi
macro được mở rộng.

Ngoài những tác dụng phụ của -C tùy chọn, -CC tùy chọn gây ra tất cả C ++ - style
nhận xét bên trong macro sẽ được chuyển đổi thành nhận xét kiểu C. Điều này để ngăn chặn sau này
sử dụng macro đó từ việc vô tình nhận xét phần còn lại của dòng nguồn.
Sản phẩm -CC tùy chọn thường được sử dụng để hỗ trợ nhận xét lint.

Cảnh báo: điều này hiện xử lý C- và C ++ - Chỉ nhận xét kiểu. Bộ xử lý trước thực hiện
chưa nhận ra bình luận kiểu Fortran.

-Dtên
Xác định trước tên dưới dạng macro, với định nghĩa 1.

-Dtên=định nghĩa
Nội dung của định nghĩa được mã hóa và xử lý như thể chúng xuất hiện trong
dịch giai đoạn ba trong chỉ thị '#define'. Đặc biệt, định nghĩa sẽ
được cắt ngắn bởi các ký tự dòng mới được nhúng.

Nếu bạn đang gọi bộ xử lý tiền xử lý từ một chương trình tương tự như shell hoặc shell, bạn có thể cần
sử dụng cú pháp trích dẫn của shell để bảo vệ các ký tự chẳng hạn như dấu cách có
nghĩa trong cú pháp shell.

Nếu bạn muốn xác định một macro giống hàm trên dòng lệnh, hãy viết đối số của nó
liệt kê có dấu ngoặc bao quanh trước dấu bằng (nếu có). Dấu ngoặc đơn là
có ý nghĩa với hầu hết các shell, vì vậy bạn sẽ cần phải trích dẫn tùy chọn. Với sh và csh,
"-D'name (args ...) = Definition '" hoạt động.

-D-U các tùy chọn được xử lý theo thứ tự chúng được đưa ra trên dòng lệnh. Tất cả các
Các tùy chọn tệp -imacros và-bao gồm tệp được xử lý sau khi tất cả các tùy chọn -D và -U.

-H In tên của mỗi tệp tiêu đề được sử dụng, ngoài các hoạt động bình thường khác. Mỗi
tên được thụt vào để cho biết nó nằm sâu như thế nào trong ngăn xếp '#include'.

-P Ngăn chặn việc tạo dòng đánh dấu trong đầu ra từ bộ tiền xử lý. Đây có thể là
hữu ích khi chạy bộ tiền xử lý trên thứ gì đó không phải là mã C và sẽ được gửi
đến một chương trình có thể bị nhầm lẫn bởi các dấu dòng.

-Utên
Hủy bỏ mọi định nghĩa trước đây về tên, được tích hợp sẵn hoặc được cung cấp với -D tùy chọn.

Các lựa chọn đến yêu cầu or đàn áp lỗi cảnh báo
Lỗi là thông báo chẩn đoán báo cáo rằng trình biên dịch GNU Fortran không thể biên dịch
đoạn mã nguồn có liên quan. Trình biên dịch sẽ tiếp tục xử lý chương trình trong
cố gắng báo cáo các lỗi khác để hỗ trợ gỡ lỗi, nhưng sẽ không tạo ra bất kỳ
đầu ra.

Cảnh báo là thông báo chẩn đoán báo cáo các cấu tạo vốn dĩ không phải là
sai nhưng có nguy cơ hoặc cho thấy có khả năng có lỗi trong chương trình.
Trừ khi - Lỗi được chỉ định, chúng không ngăn cản việc biên dịch chương trình.

Bạn có thể yêu cầu nhiều cảnh báo cụ thể với các tùy chọn bắt đầu -W, Ví dụ -Gợi ý
để yêu cầu cảnh báo về các khai báo ngầm. Mỗi tùy chọn cảnh báo cụ thể này cũng
có một dạng phủ định bắt đầu -Không- để tắt cảnh báo; Ví dụ, -Không ẩn ý.
Sổ tay hướng dẫn này chỉ liệt kê một trong hai biểu mẫu, biểu mẫu nào không phải là biểu mẫu mặc định.

Các tùy chọn này kiểm soát số lượng và các loại lỗi và cảnh báo do GNU Fortran tạo ra:

-fmax-error =n
Giới hạn số lượng thông báo lỗi tối đa là n, tại thời điểm đó GNU Fortran giải quyết vấn đề
thay vì cố gắng tiếp tục xử lý mã nguồn. Nếu như n là 0, không có
giới hạn về số lượng thông báo lỗi được tạo ra.

-chỉ tổng hợp
Kiểm tra mã để tìm lỗi cú pháp, nhưng không thực sự biên dịch nó. Điều này sẽ tạo ra
tệp mô-đun cho mỗi mô-đun có trong mã, nhưng không có tệp đầu ra nào khác.

- mang tính mô phạm
Đưa ra cảnh báo về việc sử dụng các tiện ích mở rộng cho Fortran 95. - mang tính mô phạm cũng áp dụng cho
Các cấu trúc ngôn ngữ C ở nơi chúng xuất hiện trong các tệp nguồn GNU Fortran, chẳng hạn như việc sử dụng \e
trong một hằng số ký tự trong một chỉ thị như "#include".

Các chương trình Fortran 95 hợp lệ phải được biên dịch đúng cách có hoặc không có tùy chọn này.
Tuy nhiên, nếu không có tùy chọn này, các tiện ích mở rộng GNU nhất định và các tính năng truyền thống của Fortran
cũng được hỗ trợ. Với tùy chọn này, nhiều người trong số họ bị từ chối.

Một số người dùng cố gắng sử dụng - mang tính mô phạm để kiểm tra sự phù hợp của các chương trình. Họ sớm tìm thấy
rằng nó không hoàn toàn làm những gì họ muốn --- nó tìm thấy một số phương pháp không tiêu chuẩn, nhưng
không phải tất cả. Tuy nhiên, những cải tiến đối với GNU Fortran trong lĩnh vực này được hoan nghênh.

Điều này nên được sử dụng cùng với -std = f95, -std = f2003 or -std = f2008.

-pedantic-error
Như - mang tính mô phạm, ngoại trừ lỗi được tạo ra chứ không phải là cảnh báo.

-Tường
Bật các tùy chọn cảnh báo thường được sử dụng liên quan đến cách sử dụng mà chúng tôi khuyên bạn nên tránh
và chúng tôi tin rằng dễ dàng tránh được. Điều này hiện bao gồm -Mang tính,
-Wampersand, -Chuyển đổi, -Không ngờ, -Kiểu ràng buộc c, -Wintrinsics-std,
-Không có tab, - Nội tại-bóng tối, -Cắt bớt đường dây, -Mục tiêu-trọn đời, -Thực tế-q-hằng số
-Không sử dụng.

-Mang tính
Cảnh báo về khả năng có thể có biệt hiệu của các đối số giả. Cụ thể, nó cảnh báo nếu cùng
đối số thực tế được liên kết với đối số giả với "INTENT (IN)" và đối số giả
đối số với "INTENT (OUT)" trong cuộc gọi có giao diện rõ ràng.

Ví dụ sau sẽ kích hoạt cảnh báo.

giao diện
thanh chương trình con (a, b)
số nguyên, ý định (trong) :: a
số nguyên, ý định (ra) :: b
kết thúc chương trình con
giao diện kết thúc
số nguyên :: a

thanh gọi (a, a)

-Wampersand
Cảnh báo về việc thiếu ký hiệu và trong các hằng số ký tự tiếp tục. Cảnh báo được đưa ra
với -Wampersand, - mang tính mô phạm, -std = f95, -std = f2003-std = f2008. Lưu ý: Không có
ký hiệu và được đưa ra trong một hằng số ký tự tiếp tục, GNU Fortran giả sử tiếp tục tại
ký tự đầu tiên không nhận xét, không có khoảng trắng sau dấu và bắt đầu
sự tiếp nối.

-Warray-tạm thời
Cảnh báo về thời gian tạm thời của mảng được tạo bởi trình biên dịch. Thông tin được tạo ra bởi
cảnh báo này đôi khi hữu ích trong việc tối ưu hóa, để tránh những khoảng thời gian tạm thời như vậy.

-Kiểu ràng buộc c
Cảnh báo nếu một biến có thể không phải là C. Đặc biệt, cảnh báo nếu
biến đã được khai báo bằng cách sử dụng kiểu nội tại với kiểu mặc định thay vì sử dụng
một tham số loại được xác định cho khả năng tương tác C trong "ISO_C_Binding" nội tại
mô-đun. Tùy chọn này được ngụ ý bởi -Tường.

- Cắt ngắn ký tự
Cảnh báo khi một phép gán ký tự sẽ cắt ngắn chuỗi được gán.

-Cắt bớt đường dây
Cảnh báo khi nào một dòng mã nguồn sẽ bị cắt bớt. Tùy chọn này được ngụ ý bởi -Tường. Đối với
mã nguồn dạng tự do, mặc định là -Werror = line-truncation như vậy mà cắt ngắn
được báo cáo là lỗi.

-Chuyển đổi
Cảnh báo về các chuyển đổi ngầm có khả năng thay đổi giá trị của biểu thức
sau khi chuyển đổi. Ngụ ý của -Tường.

- Chuyển đổi-bổ sung
Cảnh báo về các chuyển đổi ngầm giữa các loại và các loại khác nhau. Tùy chọn này không
không bao hàm, ngụ ý -Chuyển đổi.

-Wextra
Bật một số tùy chọn cảnh báo cho việc sử dụng các tính năng ngôn ngữ có thể có vấn đề.
Điều này hiện bao gồm -So sánh thực tế-Không sử dụng-tham số.

-Giao diện rõ ràng
Cảnh báo nếu một thủ tục được gọi mà không có giao diện rõ ràng. Lưu ý điều này chỉ kiểm tra
rằng có một giao diện rõ ràng. Nó không kiểm tra xem các giao diện đã khai báo
nhất quán giữa các đơn vị chương trình.

-Quy trình rõ ràng
Cảnh báo nếu một thủ tục được gọi không có giao diện rõ ràng hoặc không có
được khai báo là "BÊN NGOÀI".

-Wintrinsics-std
Cảnh báo nếu gfortran tìm thấy một thủ tục có tên giống như một nội tại không có sẵn trong
tiêu chuẩn hiện được chọn (với -std) và coi nó là thủ tục "NGOÀI" vì
điều này. -cụ thể-bản chất có thể được sử dụng để không bao giờ kích hoạt hành vi này và luôn liên kết
đối với nội tại bất kể tiêu chuẩn đã chọn.

-Thực tế-q-hằng số
Đưa ra một cảnh báo nếu một hằng số theo nghĩa đen thực có chứa một ký tự số mũ "q".

-Không ngờ
Đưa ra cảnh báo khi gặp các cấu trúc mã "đáng ngờ". Trong khi
về mặt pháp lý, những điều này thường chỉ ra rằng một lỗi đã được thực hiện.

Điều này hiện tạo ra một cảnh báo trong các trường hợp sau:

* Một cấu trúc INTEGER SELECT có một CASE không bao giờ có thể được so khớp với giá trị thấp hơn của nó
giá trị lớn hơn giá trị trên của nó.

* Một cấu trúc LOGICAL SELECT có ba câu lệnh CASE.

* CHUYỂN GIAO chỉ định một nguồn ngắn hơn đích.

* Kiểu của một hàm được khai báo nhiều lần với cùng một kiểu. Nếu như
- mang tính mô phạm hoặc chế độ phù hợp tiêu chuẩn được bật, đây là một lỗi.

* Biến "CHARACTER" được khai báo với độ dài âm.

-Wtabs
Theo mặc định, các tab được chấp nhận là khoảng trắng, nhưng các tab không phải là thành viên của Fortran
Bộ ký tự. Đối với các dòng tiếp tục, một tab được theo sau bởi một chữ số từ 1 đến 9 là
được hỗ trợ. -Wtabs sẽ đưa ra cảnh báo nếu gặp phải tab. Ghi chú,
-Wtabs đang hoạt động cho - mang tính mô phạm, -std = f95, -std = f2003, -std = f2008, -std = f2008ts
-Tường.

-Wunderflow
Đưa ra cảnh báo khi gặp các biểu thức hằng số, điều này mang lại
UNDERFLOW trong quá trình biên dịch. Được bật theo mặc định.

- Nội tại-bóng tối
Cảnh báo nếu một thủ tục do người dùng xác định hoặc thủ tục mô-đun có cùng tên với một
Nội tại; trong trường hợp này là giao diện rõ ràng hoặc "NGOÀI" hoặc "NỘI BỘ"
có thể cần khai báo để các cuộc gọi sau này được giải quyết theo mong muốn
nội tại / thủ tục. Tùy chọn này được ngụ ý bởi -Tường.

-Chỉ sử dụng mà không
Cảnh báo nếu câu lệnh "SỬ DỤNG" không có định nghĩa "CHỈ" và do đó, nhập ngầm tất cả
các thực thể công khai của mô-đun được sử dụng.

-Không sử dụng-giả-lập luận
Cảnh báo về các đối số giả không được sử dụng. Tùy chọn này được ngụ ý bởi -Tường.

-Không sử dụng-tham số
Trái với gccý nghĩa của -Không sử dụng-tham số, gfortranthực hiện điều này
tùy chọn không cảnh báo về các đối số giả không được sử dụng (xem -Không sử dụng-giả-lập luận), Nhưng
về các giá trị "PARAMETER" không sử dụng. -Không sử dụng-tham số được ngụ ý bởi -Wextra nếu cũng
-Không sử dụng or -Tường Được sử dụng.

-Walign-common
Theo mặc định, gfortran cảnh báo về bất kỳ trường hợp nào của các biến được đệm cho phù hợp
căn chỉnh bên trong khối "COMMON". Cảnh báo này có thể được tắt qua
-Wno-align-common. Xem thêm -falign-common.

- Loại bỏ chức năng
Cảnh báo nếu có bất kỳ lệnh gọi hàm nào bị loại bỏ bởi tính năng tối ưu hóa được kích hoạt bởi
-ffrontend-tối ưu hóa tùy chọn.

-Wrealloc-lhs
Cảnh báo khi trình biên dịch có thể chèn mã để phân bổ hoặc tái phân bổ
biến mảng có thể phân bổ của kiểu nội tại trong các phép gán nội tại. Trong các vòng lặp nóng,
tính năng tái phân bổ của Fortran 2003 có thể làm giảm hiệu suất. Nếu mảng là
đã được phân bổ với hình dạng chính xác, hãy xem xét sử dụng một thông số mảng toàn mảng
(ví dụ: "(:,:, :)") cho biến ở phía bên trái để ngăn việc phân bổ lại
đánh dấu. Lưu ý rằng trong một số trường hợp, cảnh báo được hiển thị, ngay cả khi trình biên dịch
tối ưu hóa kiểm tra phân bổ lại đi. Ví dụ: khi phía bên phải chứa
cùng một biến nhân với một đại lượng vô hướng. Xem thêm -frealloc-lhs.

-Wrealloc-lhs-tất cả
Cảnh báo khi trình biên dịch chèn mã để phân bổ hoặc tái phân bổ
biến cấp phát; điều này bao gồm các đại lượng vô hướng và các loại dẫn xuất.

-So sánh thực tế
Cảnh báo khi so sánh các loại thực hoặc phức tạp về sự bình đẳng hoặc bất bình đẳng. Tùy chọn này là
ngụ ý của -Wextra.

-Mục tiêu-trọn đời
Cảnh báo nếu con trỏ trong một phép gán con trỏ có thể dài hơn mục tiêu của nó. Cái này
tùy chọn được ngụ ý bởi -Tường.

-Kéo dài
Cảnh báo nếu vòng lặp "DO" được biết là không thực thi lần nào tại thời điểm biên dịch. Tùy chọn này là
ngụ ý của -Tường.

- Lỗi
Biến tất cả các cảnh báo thành lỗi.

Một số trong số này không có tác dụng khi biên dịch các chương trình được viết bằng Fortran.

Các lựa chọn cho gỡ lỗi qua một vài thao tác đơn giản về chương trình or GNU Fortran
GNU Fortran có nhiều tùy chọn đặc biệt khác nhau được sử dụng để gỡ lỗi chương trình của bạn hoặc
trình biên dịch GNU Fortran.

-fdump-fortran-gốc
Xuất cây phân tích cú pháp nội bộ sau khi dịch chương trình nguồn thành nội bộ
sự đại diện. Chỉ thực sự hữu ích cho việc gỡ lỗi chính trình biên dịch GNU Fortran.

-fdump-fortran-tối ưu hóa
Đưa ra cây phân tích cú pháp sau khi tối ưu hóa giao diện người dùng. Chỉ thực sự hữu ích để gỡ lỗi
chính trình biên dịch GNU Fortran.

-fdump-parse-cây
Xuất cây phân tích cú pháp nội bộ sau khi dịch chương trình nguồn thành nội bộ
sự đại diện. Chỉ thực sự hữu ích cho việc gỡ lỗi chính trình biên dịch GNU Fortran.
Tùy chọn này không được dùng nữa; thay vào đó hãy sử dụng "-fdump-fortran-original".

-ffpe-trap =
Chỉ định danh sách các bẫy ngoại lệ dấu chấm động để bật. Trên hầu hết các hệ thống, nếu
ngoại lệ dấu chấm động xảy ra và bẫy cho ngoại lệ đó được kích hoạt, một SIGFPE
tín hiệu sẽ được gửi đi và chương trình đang bị hủy bỏ, tạo ra một tệp cốt lõi hữu ích cho
gỡ lỗi. là một danh sách (có thể trống) được phân tách bằng dấu phẩy sau đây
ngoại lệ: không hợp lệ (hoạt động dấu phẩy động không hợp lệ, chẳng hạn như "SQRT (-1.0)"), không
(chia cho số không), tràn (tràn trong một phép toán dấu phẩy động), dòng chảy dưới
(dòng dưới trong một phép toán dấu phẩy động), không chính xác (mất độ chính xác trong
hoạt động), và không bình thường (hoạt động được thực hiện trên một giá trị không bình thường). Năm đầu tiên
các ngoại lệ tương ứng với năm ngoại lệ IEEE 754, trong khi ngoại lệ cuối cùng (không bình thường)
không phải là một phần của tiêu chuẩn IEEE 754 nhưng có sẵn trên một số kiến ​​trúc chung
chẳng hạn như x86.

Ba ngoại lệ đầu tiên (không hợp lệ, khôngtràn) thường biểu thị nghiêm trọng
lỗi, và trừ khi chương trình có các điều khoản để giải quyết những trường hợp ngoại lệ này,
bật bẫy cho ba trường hợp ngoại lệ này có lẽ là một ý kiến ​​hay.

Nhiều, nếu không phải hầu hết, các phép toán dấu phẩy động làm mất độ chính xác do làm tròn,
và do đó, "ffpe-trap = unaact" có thể không thú vị trong thực tế.

Theo mặc định, không có bẫy ngoại lệ nào được bật.

-ffpe-Summary =
Chỉ định danh sách các ngoại lệ dấu phẩy động, có trạng thái cờ được in ra
"ERROR_UNIT" khi gọi "STOP" và "ERROR STOP". có thể là một trong hai không ai, tất cả các hoặc một
danh sách các trường hợp ngoại lệ sau được phân tách bằng dấu phẩy: không hợp lệ, không, tràn, dòng chảy dưới,
không chính xáckhông bình thường. (Xem -fpe-trap để biết mô tả về các trường hợp ngoại lệ.)

Theo mặc định, một bản tóm tắt cho tất cả các trường hợp ngoại lệ nhưng không chính xác được hiển thị.

-fno-backtrace
Khi gặp lỗi thời gian chạy nghiêm trọng hoặc phát ra tín hiệu chết người
(lỗi phân đoạn, lệnh bất hợp pháp, lỗi bus, ngoại lệ dấu phẩy động và
các tín hiệu POSIX khác có hành động cốt lõi), thư viện thời gian chạy Fortran cố gắng
xuất ra một dấu vết của lỗi. "-fno-backtrace" vô hiệu hóa tạo backtrace.
Tùy chọn này chỉ có ảnh hưởng đến việc biên dịch chương trình chính của Fortran.

Các lựa chọn cho thư mục Tìm kiếm
Các tùy chọn này ảnh hưởng đến cách GNU Fortran tìm kiếm các tệp được chỉ định bởi "INCLUDE"
chỉ thị và nơi nó tìm kiếm các mô-đun đã được biên dịch trước đó.

Nó cũng ảnh hưởng đến các đường dẫn tìm kiếm được sử dụng bởi cpp khi được sử dụng để xử lý trước nguồn Fortran.

-Idir
Những điều này ảnh hưởng đến việc giải thích chỉ thị "INCLUDE" (cũng như "#include"
chỉ thị của cpp bộ tiền xử lý).

Cũng lưu ý rằng hành vi chung của -I và "INCLUDE" khá giống với
-I với "#include" trong cpp bộ tiền xử lý, liên quan đến việc tìm kiếm tiêu đề.gcc
tệp và những thứ khác.

Đường dẫn này cũng được sử dụng để tìm kiếm .mod các tệp khi các mô-đun được biên dịch trước đó là
được yêu cầu bởi câu lệnh "USE".

-Jdir
Tùy chọn này chỉ định nơi đặt .mod tệp cho các mô-đun đã biên dịch. Nó cũng được thêm vào
vào danh sách các thư mục để tìm kiếm bằng câu lệnh "USE".

Mặc định là thư mục hiện tại.

-fintri nội-mô-đun-đường dẫn dir
Tùy chọn này chỉ định vị trí của các mô-đun nội tại được biên dịch trước, nếu chúng không
ở vị trí mặc định mà trình biên dịch mong đợi.

Ảnh hưởng các liên kết bước
Các tùy chọn này phát huy tác dụng khi trình biên dịch liên kết các tệp đối tượng thành một tệp thực thi
tệp đầu ra. Chúng sẽ vô nghĩa nếu trình biên dịch không thực hiện bước liên kết.

-static-libgfortran
Trên các hệ thống cung cấp libgfortran dưới dạng thư viện được chia sẻ và thư viện tĩnh, tùy chọn này
buộc sử dụng phiên bản tĩnh. Nếu không có phiên bản chia sẻ của libgfortran đã được xây dựng
khi trình biên dịch được cấu hình, tùy chọn này không có hiệu lực.

Ảnh hưởng thời gian chạy hành vi
Các tùy chọn này ảnh hưởng đến hành vi thời gian chạy của các chương trình được biên dịch bằng GNU Fortran.

-fconvert =Chuyển đổi
Chỉ định cách biểu diễn dữ liệu cho các tệp chưa được định dạng. Giá trị hợp lệ để chuyển đổi
là: tự nhiên, mặc định; trao đổi, hoán đổi giữa big- endian và little-endian; người lớn, Sử dụng
đại diện big-endian cho các tệp chưa được định dạng; người cuối cùng, sử dụng little-endian
đại diện cho các tệp chưa được định dạng.

T tùy chọn an hiệu lực có thể khi nào đã sử dụng in các chính chương trình. Sản phẩm "ĐỔI" người chỉ định
các GFORTRAN_CONVERT_UNIT môi trường biến ghi đè các mặc định quy định by
-fchuyển đổi.

-frecord-marker =chiều dài
Chỉ định độ dài của các điểm đánh dấu bản ghi cho các tệp chưa được định dạng. Giá trị hợp lệ cho chiều dài
là 4 và 8. Mặc định là 4. T is khác nhau từ trước phiên bản of gfortran,
đã chỉ định độ dài điểm đánh dấu bản ghi mặc định là 8 trên hầu hết các hệ thống. Nếu bạn muốn
đọc hoặc ghi các tệp tương thích với các phiên bản trước của gfortran, Sử dụng
-frecord-marker = 8.

-fmax-subrecord-length =chiều dài
Chỉ định độ dài tối đa cho một bản ghi con. Giá trị tối đa được phép cho độ dài là
2147483639, cũng là mặc định. Chỉ thực sự hữu ích để sử dụng bởi gfortran
testsuite.

-fsign-không
Khi được bật, các số dấu phẩy động có giá trị bằng XNUMX với bộ bit dấu sẽ được viết
dưới dạng số âm trong đầu ra được định dạng và được coi là số âm trong "SIGN"
Nội tại. -fno-dấu-không không in dấu âm của các giá trị XNUMX (hoặc các giá trị
làm tròn thành XNUMX đối với I / O) và coi số XNUMX là số dương trong nội tại "SIGN"
để tương thích với Fortran 77. Giá trị mặc định là -fsign-không.

Các lựa chọn cho thế hệ ước
Các tùy chọn độc lập với máy này kiểm soát các quy ước giao diện được sử dụng trong mã
thế hệ.

Hầu hết chúng đều có cả dạng tích cực và tiêu cực; dạng phủ định của -foo sẽ là
-fno-foo. Trong bảng dưới đây, chỉ một trong các biểu mẫu được liệt kê --- biểu mẫu không phải là
vỡ nợ. Bạn có thể tìm ra biểu mẫu khác bằng cách xóa không- hoặc thêm nó.

-không tự động
Xử lý từng đơn vị chương trình (ngoại trừ những đơn vị được đánh dấu là RECURSIVE) như thể câu lệnh "SAVE"
đã được chỉ định cho mọi biến cục bộ và mảng được tham chiếu trong đó. Không ảnh hưởng đến
khối chung. (Một số trình biên dịch Fortran cung cấp tùy chọn này dưới tên -mặt đứng or
-cứu.) Giá trị mặc định, là -tự động, sử dụng ngăn xếp cho các biến cục bộ nhỏ hơn
hơn giá trị được đưa ra bởi -fmax-stack-var-size. Sử dụng tùy chọn -phản xạ không sử dụng
bộ nhớ tĩnh.

-ff2c
Tạo mã được thiết kế để tương thích với mã được tạo bởi g77f2c.

Các quy ước gọi được sử dụng bởi g77 (ban đầu được triển khai trong f2c) yêu cầu các chức năng
kiểu trả về mặc định là "REAL" để thực sự trả về kiểu C "double" và các hàm
kiểu trả về đó là "COMPLEX" để trả về các giá trị thông qua một đối số bổ sung trong lệnh gọi
trình tự trỏ đến nơi lưu trữ giá trị trả về. Theo GNU mặc định
gọi các quy ước, các hàm như vậy chỉ đơn giản trả về kết quả của chúng như trong GNU
C --- các hàm "REAL" mặc định trả về loại C "float" và các hàm "COMPLEX" trả về
GNU C loại "phức hợp". Ngoài ra, tùy chọn này ngụ ý -second-gạch dưới
tùy chọn, trừ khi -fno-thứ hai-gạch dưới được yêu cầu rõ ràng.

Điều này không ảnh hưởng đến việc tạo mã giao diện với libgfortran
thư viện.

Phạt cảnh cáo: Không phải là một ý kiến ​​hay khi kết hợp mã Fortran được biên dịch với -ff2c với mã
biên dịch với mặc định -fno-f2c gọi quy ước là, gọi "COMPLEX" hoặc
các chức năng "REAL" mặc định giữa các phần chương trình được biên dịch với các
quy ước gọi sẽ bị phá vỡ tại thời điểm thực thi.

Phạt cảnh cáo: Điều này sẽ phá vỡ mã chuyển các chức năng nội tại của loại mặc định "REAL"
hoặc "COMPLEX" làm đối số thực tế, vì triển khai thư viện sử dụng -fno-f2c
quy ước gọi điện.

-fno-gạch dưới
Không biến đổi tên của các thực thể được chỉ định trong tệp nguồn Fortran bằng cách thêm vào
nhấn mạnh chúng.

Với -gây quỹ trên thực tế, GNU Fortran thêm một dấu gạch dưới vào các tên bên ngoài
không có dấu gạch dưới. Điều này được thực hiện để đảm bảo khả năng tương thích với mã do nhiều
Trình biên dịch UNIX Fortran.

Phạt cảnh cáo: Hành vi mặc định của GNU Fortran không tương thích với f2cg77, Xin vui lòng
sử dụng -ff2c tùy chọn nếu bạn muốn các tệp đối tượng được biên dịch bằng GNU Fortran trở thành
tương thích với mã đối tượng được tạo bằng các công cụ này.

sử dụng -fno-gạch dưới không được khuyến nghị trừ khi bạn đang thử nghiệm các vấn đề
chẳng hạn như tích hợp GNU Fortran vào môi trường hệ thống hiện có (trực quan
thư viện, công cụ hiện có, v.v.).

Ví dụ với -gây quỹvà giả sử rằng "j ()" và "max_count ()" là
các hàm bên ngoài trong khi "my_var" và "lvar" là các biến cục bộ, một câu lệnh như

I = J () + MAX_COUNT (MY_VAR, LVAR)

được triển khai như một cái gì đó tương tự như:

i = j_ () + max_count __ (& my_var__, & lvar);

Với -fno-gạch dưới, câu lệnh tương tự được thực hiện như:

i = j () + max_count (& my_var, & lvar);

sử dụng -fno-gạch dưới cho phép đặc tả trực tiếp các tên do người dùng xác định trong khi
gỡ lỗi và khi giao tiếp mã GNU Fortran với các ngôn ngữ khác.

Lưu ý rằng chỉ vì tên trùng khớp không nghĩa là giao diện được triển khai bởi
GNU Fortran cho một tên bên ngoài khớp với giao diện được triển khai bởi một số
ngôn ngữ cho cùng tên. Đó là, lấy mã do GNU Fortran sản xuất để liên kết đến
mã do một số trình biên dịch khác tạo ra bằng cách sử dụng phương pháp này hoặc bất kỳ phương pháp nào khác chỉ có thể là một
một phần nhỏ của giải pháp tổng thể --- nhận mã được tạo bởi cả hai trình biên dịch để
đồng ý về các vấn đề khác ngoài việc đặt tên có thể đòi hỏi nỗ lực đáng kể và, không giống như đặt tên
những bất đồng, những người liên kết thường không thể phát hiện ra những bất đồng trong những lĩnh vực khác này.

Ngoài ra, hãy lưu ý rằng với -fno-gạch dưới, việc thiếu dấu gạch dưới nối thêm giới thiệu
khả năng rất thực tế là tên bên ngoài do người dùng xác định sẽ xung đột với tên
trong thư viện hệ thống, điều này có thể giúp việc tìm kiếm các lỗi tham chiếu chưa được giải quyết khá
khó khăn trong một số trường hợp --- chúng có thể xảy ra vào thời gian chạy chương trình và chỉ hiển thị dưới dạng
hành vi lỗi tại thời gian chạy.

Trong các phiên bản GNU Fortran trong tương lai, chúng tôi hy vọng sẽ cải thiện các vấn đề về đặt tên và liên kết để
gỡ lỗi luôn liên quan đến việc sử dụng các tên khi chúng xuất hiện trong nguồn, ngay cả khi
các tên mà trình liên kết nhìn thấy sẽ bị xáo trộn để ngăn việc liên kết ngẫu nhiên giữa
các thủ tục có giao diện không tương thích.

-second-gạch dưới
Theo mặc định, GNU Fortran thêm dấu gạch dưới vào các tên bên ngoài. Nếu tùy chọn này là
GNU Fortran đã sử dụng thêm hai dấu gạch dưới vào tên có dấu gạch dưới và một dấu gạch dưới
tên bên ngoài không có dấu gạch dưới. GNU Fortran cũng thêm hai dấu gạch dưới vào
tên nội bộ có gạch dưới để tránh va chạm đặt tên với tên bên ngoài.

Tùy chọn này không có hiệu lực nếu -fno-gạch dưới đang có hiệu lực. Nó được ngụ ý bởi
-ff2c tùy chọn.

Nếu không, với tùy chọn này, tên bên ngoài chẳng hạn như "MAX_COUNT" được triển khai dưới dạng
tham chiếu đến ký hiệu bên ngoài thời gian liên kết "max_count__", thay vì "max_count_".
Điều này là bắt buộc để tương thích với g77f2cvà được ngụ ý bằng cách sử dụng
-ff2c tùy chọn.

-fcoarray =
không ai
Tắt hỗ trợ coarray; sử dụng khai báo coarray và câu lệnh điều khiển hình ảnh
sẽ tạo ra lỗi thời gian biên dịch. (Vỡ nợ)

duy nhất
Chế độ một ảnh, tức là "num_images ()" luôn là một.

lib Song song hóa coarray dựa trên thư viện; một thư viện coarray GNU Fortran phù hợp
cần được liên kết.

-fcheck =
Cho phép tạo kiểm tra thời gian chạy; đối số sẽ là một danh sách được phân tách bằng dấu phẩy
trong số các từ khóa sau.

tất cả các Bật tất cả kiểm tra thời gian chạy của -kiểm tra.

mảng nhiệt độ
Cảnh báo tại thời điểm chạy khi để truyền một đối số thực tế, một mảng tạm thời phải
được tạo ra. Thông tin được tạo ra bởi cảnh báo này đôi khi hữu ích trong
tối ưu hóa, để tránh những khoảng thời gian tạm thời như vậy.

Lưu ý: Cảnh báo chỉ được in một lần cho mỗi vị trí.

giới hạn
Cho phép tạo các kiểm tra thời gian chạy cho các chỉ số con của mảng và đối với các chỉ số đã khai báo
giá trị tối thiểu và tối đa. Nó cũng kiểm tra các chỉ số mảng cho giả định và trì hoãn
mảng định hình so với giới hạn được phân bổ thực tế và đảm bảo rằng tất cả chuỗi
độ dài bằng nhau đối với các hàm tạo mảng ký tự mà không có một tệp kiểu chữ rõ ràng.

Một số séc yêu cầu điều đó -fcheck = giới hạn được thiết lập để biên dịch chính
chương trình.

Lưu ý: Trong tương lai, điều này cũng có thể bao gồm các hình thức kiểm tra khác, ví dụ: kiểm tra
tham chiếu chuỗi con.

do Cho phép tạo kiểm tra thời gian chạy để sửa đổi không hợp lệ của lặp lại vòng lặp
biến.

mem Cho phép tạo kiểm tra thời gian chạy để phân bổ bộ nhớ. Lưu ý: Tùy chọn này
không ảnh hưởng đến việc phân bổ rõ ràng bằng cách sử dụng câu lệnh "ALLOCATE", câu lệnh này sẽ
luôn luôn được kiểm tra.

con trỏ
Cho phép tạo kiểm tra thời gian chạy cho con trỏ và tệp phân bổ.

đệ quy
Cho phép tạo kiểm tra thời gian chạy cho các chương trình con được gọi đệ quy và
các hàm không được đánh dấu là đệ quy. Xem thêm -phản xạ. Lưu ý: Cái này
kiểm tra không hoạt động đối với các chương trình OpenMP và bị vô hiệu hóa nếu được sử dụng cùng với
-phản xạ-fopenmp.

-fbounds-kiểm tra
Bí danh không được chấp nhận cho -fcheck = giới hạn.

-fcheck-mảng-thời gian tạm thời
Bí danh không được chấp nhận cho -fcheck = array-temps.

-fmax-array-constructor =n
Tùy chọn này có thể được sử dụng để tăng giới hạn trên được phép trong các trình tạo mảng.
Đoạn mã dưới đây yêu cầu tùy chọn này để mở rộng mảng tại thời điểm biên dịch.

kiểm tra chương trình
ngầm hiểu không có
số nguyên j
số nguyên, tham số :: n = 100000
số nguyên, tham số :: i (n) = (/ (2 * j, j = 1, n) /)
print '(10 (I0,1X))', i
kết thúc chương trình kiểm tra

Phạt cảnh cáo: T tùy chọn có thể dẫn đến Dài biên dịch thời gian quá mức lớn vật
các tập tin.

Giá trị mặc định cho n là 65535.

-fmax-stack-var-size =n
Tùy chọn này chỉ định kích thước tính bằng byte của mảng lớn nhất sẽ được đặt trên
cây rơm; nếu kích thước vượt quá bộ nhớ tĩnh được sử dụng (ngoại trừ trong các thủ tục được đánh dấu là
NHẬN). Sử dụng tùy chọn -phản xạ để cho phép các thủ tục đệ quy không
có thuộc tính RECURSIVE hoặc cho các chương trình song song. Sử dụng -không tự động không bao giờ sử dụng
ngăn xếp.

Tùy chọn này hiện chỉ ảnh hưởng đến các mảng cục bộ được khai báo với giới hạn không đổi và có thể
không áp dụng cho tất cả các biến ký tự. Các phiên bản GNU Fortran trong tương lai có thể cải thiện điều này
hành vi.

Giá trị mặc định cho n là 32768.

-fstack-array
Thêm tùy chọn này sẽ làm cho trình biên dịch Fortran đặt tất cả các mảng cục bộ, ngay cả những mảng
kích thước không xác định vào bộ nhớ ngăn xếp. Nếu chương trình của bạn sử dụng các mảng cục bộ rất lớn thì
có thể bạn sẽ phải mở rộng giới hạn thời gian chạy của mình cho bộ nhớ ngăn xếp trên một số
các hệ điều hành. Cờ này được bật theo mặc định ở cấp độ tối ưu hóa -Ăn sáng.

-fpack-có nguồn gốc
Tùy chọn này yêu cầu GNU Fortran đóng gói các thành viên kiểu dẫn xuất càng chặt chẽ càng tốt.
Mã được biên dịch với tùy chọn này có thể không tương thích với mã được biên dịch mà không có
tùy chọn này và có thể thực thi chậm hơn.

-frepack-array
Trong một số trường hợp GNU Fortran có thể chuyển các phần mảng hình dạng giả định thông qua một
bộ mô tả mô tả một vùng không tiếp giáp của bộ nhớ. Tùy chọn này thêm mã vào
mở đầu hàm để đóng gói lại dữ liệu thành một khối liền kề trong thời gian chạy.

Điều này sẽ dẫn đến việc truy cập vào mảng nhanh hơn. Tuy nhiên nó có thể giới thiệu
chi phí đáng kể cho lệnh gọi hàm, đặc biệt là khi dữ liệu được chuyển vào là
không liền mạch.

-fshort-enums
Tùy chọn này được cung cấp cho khả năng tương tác với mã C được biên dịch với
-fshort-enums Lựa chọn. Nó sẽ làm cho GNU Fortran chọn loại "INTEGER" nhỏ nhất
bộ điều tra viên đã cho sẽ phù hợp và cung cấp cho tất cả các điều tra viên của nó loại này.

-fexternal-blas
Tùy chọn này sẽ làm cho gfortran tạo lệnh gọi đến các hàm BLAS cho một số ma trận
các hoạt động như "MATMUL", thay vì sử dụng các thuật toán của riêng chúng tôi, nếu kích thước của
ma trận liên quan lớn hơn một giới hạn nhất định (xem -fblas-matmul-giới hạn). Điều này có thể
sinh lợi nếu có sẵn thư viện BLAS của nhà cung cấp được tối ưu hóa. Thư viện BLAS sẽ
phải được chỉ định tại thời gian liên kết.

-fblas-matmul-limit =n
Chỉ quan trọng khi -fexternal-blas đang có hiệu lực. Phép nhân ma trận
với kích thước lớn hơn (hoặc bằng) n sẽ được thực hiện bởi các cuộc gọi đến các hàm BLAS,
trong khi những người khác sẽ được xử lý bởi gfortran các thuật toán bên trong. Nếu các ma trận liên quan
không phải là hình vuông, so sánh kích thước được thực hiện bằng cách sử dụng trung bình hình học của
thứ nguyên của ma trận đối số và kết quả.

Giá trị mặc định cho n là 30.

-phản xạ
Cho phép đệ quy gián tiếp bằng cách buộc phân bổ tất cả các mảng cục bộ trên ngăn xếp.
Không thể sử dụng cờ này cùng với -fmax-stack-var-size = or -không tự động.

-finit-local-zero
-finit-integer =n
-finit-real =
-finit-logic =
-finit-character =n
Sản phẩm -finit-local-zero tùy chọn hướng dẫn trình biên dịch khởi tạo "INTEGER" cục bộ,
Các biến "REAL" và "COMPLEX" thành XNUMX, biến "LOGICAL" thành false và "CHARACTER"
biến thành một chuỗi byte rỗng. Các tùy chọn khởi tạo chi tiết hơn là
được cung cấp bởi -finit-integer =n, -finit-real = (mà cũng
khởi tạo phần thực và phần ảo của biến cục bộ "COMPLEX"),
-finit-logic =-finit-character =n (Ở đâu n là một ký tự ASCII
giá trị) các tùy chọn. Các tùy chọn này không khởi tạo

* mảng có thể phân bổ

* các thành phần của biến kiểu dẫn xuất

* các biến xuất hiện trong câu lệnh "TƯƠNG ĐƯƠNG".

(Những hạn chế này có thể được gỡ bỏ trong các bản phát hành trong tương lai).

Lưu ý rằng -finit-real = nan tùy chọn khởi tạo các biến "REAL" và "COMPLEX" với
NaN yên lặng. Để sử dụng NaN báo hiệu -finit-real = snan; lưu ý, tuy nhiên, thời gian biên dịch
tối ưu hóa có thể chuyển chúng thành NaN yên tĩnh và cần phải bật tính năng bẫy
(ví dụ: qua -fpe-trap).

Cuối cùng, lưu ý rằng bật bất kỳ -finit- * các tùy chọn sẽ tắt tiếng cảnh báo rằng
sẽ được phát ra bởi -Được vệ sinh cho các biến cục bộ bị ảnh hưởng.

-falign-common
Theo mặc định, gfortran thực thi căn chỉnh thích hợp của tất cả các biến trong khối "COMMON" bằng cách
đệm chúng khi cần thiết. Trên một số nền tảng, điều này là bắt buộc, trên một số nền tảng khác, điều này sẽ tăng lên
màn biểu diễn. Nếu khối "COMMON" không được khai báo với các kiểu dữ liệu nhất quán
ở mọi nơi, phần đệm này có thể gây ra rắc rối và -fno-align-common có thể được sử dụng để
tắt căn chỉnh tự động. Cùng một dạng của tùy chọn này sẽ được sử dụng cho tất cả các tệp
chia sẻ khối "COMMON". Để tránh các vấn đề về căn chỉnh tiềm ẩn trong các khối "COMMON",
Nên sắp xếp thứ tự các đối tượng từ lớn nhất đến nhỏ nhất.

-fno-bảo vệ-parens
Theo mặc định, các dấu ngoặc đơn trong biểu thức được sử dụng cho tất cả các cấp độ tối ưu hóa như
rằng trình biên dịch không thực hiện bất kỳ liên kết lại nào. Sử dụng -fno-bảo vệ-parens cho phép
trình biên dịch để sắp xếp lại các biểu thức "REAL" và "COMPLEX" để tạo ra mã nhanh hơn. Lưu ý rằng
để tối ưu hóa liên kết lại -fno-ký-số không-fno-bẫy-toán học cần phải
có hiệu lực. Bảo vệ dấu ngoặc đơn được bật theo mặc định, trừ khi -Ăn sáng is
được.

-frealloc-lhs
Phần bên trái có thể phân bổ của một nhiệm vụ nội tại được tự động
(lại) được phân bổ nếu nó chưa được phân bổ hoặc có hình dạng khác. Tùy chọn là
được bật theo mặc định trừ khi -std = f95 được đưa ra. Xem thêm -Wrealloc-lhs.

-suy phạm-chức năng-loại bỏ
Các hàm có danh sách đối số giống hệt nhau bị loại bỏ trong các câu lệnh, bất kể
về việc các chức năng này có được đánh dấu "PURE" hay không. Ví dụ, trong

a = f (b, c) + f (b, c)

sẽ chỉ có một lệnh gọi duy nhất tới "f". Tùy chọn này chỉ hoạt động nếu
-ffrontend-tối ưu hóa đang có hiệu lực.

-ffrontend-tối ưu hóa
Tùy chọn này thực hiện tối ưu hóa giao diện người dùng, dựa trên việc thao tác các bộ phận của Fortran
cây phân tích cú pháp. Được bật theo mặc định bởi bất kỳ -O Lựa chọn. Tối ưu hóa được kích hoạt bởi điều này
tùy chọn bao gồm loại bỏ các lệnh gọi hàm giống hệt nhau trong các biểu thức, loại bỏ
các lệnh gọi không cần thiết đến "TRIM" trong so sánh và gán và thay thế TRIM (a) bằng
"a (1: LEN_TRIM (a))". Nó có thể được bỏ chọn bằng cách chỉ định -fno-frontend-tối ưu hóa.

MÔI TRƯỜNG


Sản phẩm gfortran trình biên dịch hiện không sử dụng bất kỳ biến môi trường nào để kiểm soát
hoạt động của nó trên và ngoài những hoạt động ảnh hưởng đến hoạt động của gcc.

Sử dụng aarch64-linux-gnu-gfortran trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

Lệnh Linux

Ad