2015-11-05 3 views
4

Я просто обновился до новейшего OSX, El Capitan, и у меня возникли проблемы с компиляцией программы на C. Он скомпилирован как раз перед обновлением ОС. После этого я получил предупреждение сообщения уже для моего LaTeX текстового редактора, Latexian:«gsl/gsl_rng.h» файл не найден »после обновления OSX El Capitan

Latexian message

Но так как я не использую предварительный просмотр или компиляцию внутри программы и компилировать в терминале с «латексной file.tex» он отлично работает.

Теперь моя проблема с моей .c программой, которая включает в себя одну из библиотек GSL, вот мой заголовок:

#include <math.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <gsl/gsl_rng.h> 
#include <gsl/gsl_randist.h> 

При компиляции я получаю следующее:

performance.c:4:10: fatal error: 'gsl/gsl_rng.h' file not found 
#include <gsl/gsl_rng.h> 
     ^
1 error generated. 

Я предполагаю, что-то изменилось в OSX из-за этих двух ситуаций, но последнее - огромная проблема для меня, так как я заканчиваю свою диссертацию! Надеюсь, мой вопрос ясен, это мой первый.

EDIT:

И я предполагаю, что это проблема

El Capitan's System Integrity Protection will shift utilities' functions

+0

Как установить GSL? Возможно, вам придется использовать параметр '-I' при компиляции и указать каталог, который является родителем' gsl/gsl_rng.h' –

+0

Привет, Майкл, спасибо за ответ. Я просто добавил редактирование, которое может описать проблему. Я далек от знания о программировании, я просто знаю основы. Я загрузил файл с сайта gsl в папку «Загрузки», затем выполнил инструкции, в терминале я написал «./configure» и «make» и другие команды, которые они инструктировали! Как использовать эту опцию -I? – lailaw

+0

Вы выполнили 'sudo make install', когда закончили? –

ответ

3

При компиляции с GCC вы, возможно, придется вручную указать родительский каталог, содержащий gsl вложенную , Аналогичным образом вам нужно будет указать каталог, чтобы найти библиотеки. Каталог include может быть добавлен как путь поиска к gcc с опцией -I, а путь поиска библиотеки - -L. В вашем случае это будет сделано, добавив в ваш GCC компиляции:

-I/usr/local/include -L/usr/local/lib 
0

В моем случае эта линия решить эту связывающую ошибку

gcc $(gsl-config --cflags) name_of_file.c $(gsl-config --libs) -o name_of_file 

Посмотреть Wiki

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