Требуется помощь в компиляции и запуске программ gcc (gsl) через терминал

Установил gsl 2.5 на Ubuntu 18.04.

Попытка скомпилировать и запустить скрипт sample_matrix.c , используя

$ gcc -Wall -I / usr / local / include -c sample_matrix.c

работает успешно; Далее, чтобы отобразить вывод,

$ ./a.out

выдает ошибку:

bash: ./a.out : Нет такого файла или каталога

В настоящее время я нахожусь в папке с именем 'gsl', в которой сохранен файл sample_matrix.c, и в этой папке я также установил gsl pkg

снимки экрана списков в папке gsl

1
задан 2 July 2019 в 18:02

1 ответ

-c переключатель говорит gcc компилировать исходный код в двоичный объектный код, но не связывать его для создания исполняемой программы: необходимо будет сначала удалить это:

gcc -Wall -I/usr/local/include sample_matrix.c

Вы затем, вероятно, найдете, что существует много из undefined reference to ... ошибки, потому что Вы не указали соответствующие библиотеки для соединения на командной строке. (Заголовочные файлы только объявляют вещи; библиотеки определяют их). Если Вы установили gsl в стандартном месте как /usr/local, затем это должно было поместить a .pc файл в /usr/local/lib/pkgconfig/ это позволит Вам автоматизировать спецификацию использования библиотек pkg-config напр.

gcc -Wall -I/usr/local/include sample_matrix.c `pkg-config --libs gsl`

(отметьте порядок аргументов: ссылки разрешены слева направо). Можно, вероятно, использовать pkg-config определять местоположение заголовочных файлов также т.е.

gcc -Wall sample_matrix.c `pkg-config --cflags --libs gsl`
1
ответ дан 7 December 2019 в 15:00

Другие вопросы по тегам:

Похожие вопросы: