2012-06-12 2 views
0

Я использую gfortran для компиляции большой программы с помощью дюжины модулей. Всякий раз, когда в коде появляется ошибка, программа генерирует сообщение об ошибке с номером строки, где произошла ошибка, и полным путем к модулю, к которому принадлежит строка. Например:Скрыть полный путь в сообщениях об ошибках времени выполнения gfortran

At line 1775 of file C:\temp\test.f90 (Unit = 200, file=' ') 
Fortran Run time error: File '*' does not exist 

Моего вопрос заключается в том, как вы остановить программу из листинга полного пути модуля обижая и достаточно сделать это только сообщить имя модуля, где произошла ошибка.

ответ

1

gfortran внедряет путь, который использовался для доступа к исходному файлу во время фазы компиляции. Например. если вы скомпилируете полный путь к файлу, вы получите полный путь в отладочном выходе. Если вы собираете с относительным путем вы получите относительный путь на выходе:

~/tests[520]$ gfortran -o test.x test.f90 
~/tests[521]$ test.x 
At line 3 of file test.f90 (unit = 200, file = '') 
Fortran runtime error: File '' does not exist 

~/tests[522]$ gfortran -o test.x ./test.f90 
~/tests[523]$ test.x 
At line 3 of file ./test.f90 (unit = 200, file = '') 
Fortran runtime error: File '' does not exist 

~/tests[524]$ gfortran -o test.x ~/tests/test.f90 
~/tests[525]$ test.x 
At line 3 of file /home/username/tests/test.f90 (unit = 200, file = '') 
Fortran runtime error: File '' does not exist 

Изменения вашей компиляции команды, чтобы получить доступ только источника, используя относительные пути.

+0

Спасибо, Hristo, но моя программа была скомпилирована с Cmake, и я не указал явно gfortran расположение моих исходных файлов. Скорее, я ввел папки источника и bin в графический интерфейс Cmake. Исходные файлы были частью информации, введенной в файл Cmakelist.txt. Я не знаю, есть ли опция в графическом интерфейсе CMake, которую вы можете установить, чтобы передать ему относительный путь, а не полный путь. Спасибо Abdinasir –

+0

Извините, я никогда не использовал GUI Cmake (даже не знал, что он существует до сих пор). –

Смежные вопросы