Использование GSL в Windows (компиляция, связывание, ect). Пошаговое Руководство
мне нужно написать код C с помощью GSL (GNU Scientific Library) и никогда раньше не использовал библиотеки.
Я физик, а не компьютерщик, и борюсь с большим количеством жаргона в документации GNU.
за последние несколько часов я был полностью смущен тем, как использовать GSL на машине Windows 7. Я пробовал читать много вопросов на этом сайте, а также другие, но много жаргона идет над моей головой.
обычно, когда Я пишу программу, я делаю следующее:
1)Откройте notepad++, включите любой из моих собственных файлов заголовков и напишите мой код.
2)скомпилировать мою программу, открыв командную строку Windows и введите:
gcc -Wall -std=c99 -o myfile myfile.c
Я сделал gcc переменной среды и установил gcc, установив CodeBlocks для Windows (однако я не использую codeblocks).
из исследований в интернете это то, что мне удалось сделать, чтобы использовать GSL:
1) скачал GSL для Windows из:http://gnuwin32.sourceforge.net/packages/gsl.htm
2) установил его на рабочий стол, так что мой путь не будет иметь пробелов (я читал пробелы в пути может быть проблемой).
3) Установите переменную среды моего пути в местоположение .dll:C:UsersRohanDesktopGnuWin32bin;
4) попытка скомпилировать пример программы GSL:
#include <stdio.h>
#include <gsl/gsl_sf_bessel.h>
int main (void)
{
double x = 5.0;
double y = gsl_sf_bessel_J0 (x);
printf ("J0(%g) = %.18en", x, y);
return 0;
}
5) я вызвал компилятор следующим образом:
C:UsersRohanDesktop>gcc -Wall -I"C:UsersRohanDesktopGnuWin32include" -L"C:UsersRohanDesktopGnuWin32lib" -lgslcblas -lgsl -lm -o test test.c
это привело к следующему сообщению об ошибке:
C:UsersRohanAppDataLocalTempccW8cO7I.o:test.c:(.text+0x30): undefined reference to `gsl_sf_bessel_J0'
collect2: ld returned 1 exit status
большая часть этого была сделана с небольшим пониманием, из-за отсутствия фона в CS.
Я вообще на правильном пути? Есть ли простое пошаговое руководство на нетехническом языке, за которым я могу следить, чтобы это работало?
любая помощь была бы весьма признательна, Спасибо!
1 ответов
вам нужно поставить test.c
до библиотеки. Библиотеки должны быть указаны в командной строке после вещей, которые используют символы в них, поэтому измените на:
gcc test.c -Wall -I"C:\Users\Rohan\Desktop\GnuWin32\include" -L"C:\Users\Rohan\Desktop\GnuWin32\lib" -lgslcblas -lgsl -lm -o test
^^^^^^ (put this first)