Установил 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
-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`