2015-05-01 3 views
1

Я выполнил инструкции по установке библиотеки GSL-1.16, и я думаю, что я успешно установил библиотеку. Однако, когда я пытаюсь скомпилировать & запустить пример программы, найденную на сайте (http://www.gnu.org/software/gsl/manual/html_node/An-Example-Program.html#An-Example-Program) Я получаю следующее сообщение:Невозможно использовать библиотеку GSL на macOS-ld: символы (символы) не найдены для архитектуры x86_64

$ gcc besel_exam.c 
Undefined symbols for architecture x86_64: 
    "_gsl_sf_bessel_J0", referenced from: 
     _main in besel_exam-72d841.o 
ld: symbol(s) not found for architecture x86_64 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Операционная система является MacOS X Yosemite и выход НКУ --version заключается в следующем:

$ gcc --version 
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 
Apple LLVM version 6.0 (clang-600.0.56) (based on LLVM 3.5svn) 
Target: x86_64-apple-darwin14.0.0 
Thread model: posix 
+1

Я ожидаю, что вы захотите связать библиотеку GSL (или что-то еще) с чем-то вроде '-lgsl' (и, возможно, использовать' -L', в зависимости от того, где он находится в файловой системе). – trojanfoe

+0

Действительно. Здесь указывается, как связать его. http://www.gnu.org/software/gsl/manual/html_node/Linking-programs-with-the-library.html#Linking-programs-with-the-library Спасибо! – bergercookie

ответ

1

Действительно, поскольку @trojanfoe и @bergercookie сказали, что вам необходимо скомпилировать ваш файл, а затем связать его с библиотекой. Как объяснялось в compile и link, для этого конкретного примера:

Первая компиляция файла:

gcc -Wall -I/usr/local/include -c example.c -o example.o 

вторых, связать его с библиотекой:

gcc -L/usr/local/lib example.o -lgsl -o example.e 

, где, конечно,/USR/local/lib следует заменить для пути, в котором установлен gsl.

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

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