Очень простой вопрос по Fortran - Компиляция UNIX - PullRequest
0 голосов
/ 31 марта 2011

Извините, если это слишком наивно или очевидно, но после долгих поисков, я не уверен на 100%, что понимаю интерфейс fortran / unix.Моя неопределенность касается природы файлов .src, .f, затем .o и .out, с которыми вы сталкиваетесь при компиляции программ на Фортране в исполняемый файл unix.Гуглить расширения файлов вот так сложно.Но если бы вы могли сказать мне, если у меня все получилось, я был бы очень признателен!

.src - исходный файл, содержащий мясной код Fortran
.f - «host-language».конкретный включаемый файл ', который немного рассказывает вашему компилятору на языке fortran об исходном коде.Иногда это интерактивно.
--- После того как вы получили файлы .o или .out, вы можете выбросить файлы .src и .f, да?
.o - это двоичный объектный файл, который получается в результате компиляции, ноне связывает файлы Fortran .f и .src.Он содержит то же мясо, но теперь преобразован в инструкции для конкретной машины?.out - это связанный объектный файл (ы), который является исполняемым и остается зависимым от .o файла (ов) и зависит от компьютера.Расширение файла .out на самом деле не нужно и часто опускается?

Я думаю, что это охватывает.Спасибо за любые исправления или дальнейшие описания.

Кайл

Ответы [ 3 ]

5 голосов
/ 31 марта 2011

Ничего об этих расширениях файлов не установлено в камне;как вы сказали, они могут быть даже опущены, или вы можете создать свой собственный.Тем не менее, это делает жизнь намного проще, если вы используете обычные.

Я никогда не видел расширение .src.Каталог, в котором находятся исходные файлы, часто называют ./src;возможно, вы видели это.
Обычно исходный код (простой текст) находится в файле с расширением .f или .f90.Первый указывает на фиксированную исходную форму («старый стиль»), а второй - на бесплатную исходную форму («современный»).Некоторые компиляторы интерпретируют расширения файлов в верхнем регистре (.F и .F90) как указание на то, что источник должен сначала пройти через препроцессор.Вместо того, чтобы позволить компилятору использовать расширения для этих интерпретаций, все это также может быть явно указано / отменено путем передачи флагов компилятору.

Компиляция исходного кода создает объектный код (машинные инструкции, которые вы упоминаете), содержится в объектном файле, обычно с расширением .o (иногда .obj или другим).После создания объектных файлов вы действительно можете выбросить файлы исходного кода, но вы не хотите этого делать.Вы хотите исправить любые ошибки, которые вы, скорее всего, сделали, а также сохранить их для будущих изменений в вашей программе.

Код объекта должен быть связан для создания окончательного исполняемого файла.Если у вас есть более одного объектного файла, они связаны между собой, включая любой код системы / внешней библиотеки, на который вы ссылались.В Unix, если вы не укажете имя для исполняемого файла, оно получит имя по умолчанию, обычно a.out.Опять же, вы можете отменить это, передав аргумент компилятору.

1 голос
/ 01 апреля 2011

После того, как вы получили файлы .o или .out, можете выбросить файлы .src и .f, да?

Нет.В качестве дополнения к ответам, описывающим различные соглашения о суффиксах, я советую вам не удалять исходные файлы Fortran (файлы .src или .f в вашем описании).Эти файлы понадобятся вам, если вы когда-нибудь захотите изменить программу или если вам нужно исследовать и исправить ошибки, которые вы замечаете при запуске исполняемого файла (a.out).

1 голос
/ 31 марта 2011

Нет, код Фортрана обычно находится в файлах .f или .f90. Более подробно, исходный код Fortran обычно имеет расширение .f, если он использует фиксированную исходную форму (стандартная исходная форма Fortran 77 и более ранних версий) или .f90, он использует бесплатную исходную форму (присутствует с Fortran 90 и далее). *

...