J'essaie d'implémenter gsl_rng.h sur une simulation Montecarlo sur mon MacBook Pro (13 pouces, mi 2012). La simulation est tout écrite en C. Mon problème est que gcc-6 se plaint de ne pas trouver la bibliothèque gsl malgré les drapeaux de compilation qui, je pense, vont bien.Impossible de compiler avec gsl sur Mac
Le sommet de declare.h, qui est inclus dans tous les fichiers .c Je travaille sur:
/* __________________ LIBRARIES ___________________*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <gsl/gsl_rng.h>
L'erreur:
fatal error: gsl/gsl_rng.h: No such file or directory
Les drapeaux de compilation inclus dans mon makefile:
INCLUDE = -I/usr/local/Cellar/gsl/2.4/include
LINK = -L/usr/local/Cellar/gsl/2.4/lib -lgsl -lgslcblas
J'ai installé à la fois gcc-6 et gsl via Homebrew.
Comment puis-je trouver gcc-6 à trouver gsl? Mes drapeaux sont-ils faux?
Le makefile:
CC = g++-6
CFLAGS = -lm -O3 -ansi -pedantic -Wall -Wextra\
-Wconversion -Wredundant-decls -fmax-errors=7\
-Wunsafe-loop-optimizations -Wmissing-braces\
-Wparentheses
# -Wdouble-promotion
INCLUDE = -I/usr/local/Cellar/gsl/2.4/include
LINK = -L/usr/local/Cellar/gsl/2.4/lib -lgsl -lgslcblas
../bin/bidimensional_MC: random.o functions.o subroutines.o\
main.o
$(CC) -o ../bin/bidimensional_MC random.o functions.o\
subroutines.o main.o $(CFLAGS) $(LINK) $(INLCUDE)
random.o: random.c
$(CC) -c random.c -lm -O3 $(CFLAGS) $(INCLUDE)
functions.o: functions.c
$(CC) -c functions.c $(CFLAGS) $(INCLUDE)
main.o: main.c
$(CC) -c main.c $(CFLAGS) $(INCLUDE)
suboutines.o: subroutines.c
$(CC) -c subroutines.c $(CFLAGS) $(INCLUDE)
clean:
rm *.o
La sortie de ls /usr/local/Cellar/gsl/2.4/include/gsl/
est:
/usr/local/Cellar/gsl/2.4/include/gsl/gsl_rng.h
La sortie de ls /usr/local/Cellar/gsl/2.4/include/
est:
gsl/
La sortie de ls /usr/local/Cellar/gsl/2.4/include/gsl/
est trop long pour poster, mais tout est là, comme il se doit. J'utilise g ++ - 6 au lieu de gcc-6 parce que le cluster dans lequel je vais enfin exécuter la simulation nécessite que le code soit conforme à C++.
est/usr/local/Cellar/gsl/2.4' un répertoire valide? Le chemin include et le chemin lib sont-ils valides? –
Quelle est la sortie de 'ls /usr/local/Cellar/gsl/2.4/include/gsl/gsl_rng.h /usr/local/Cellar/gsl/2.4/include/gsl//usr/local/Cellar/gsl/2.4/inclure/'? –
@RetiredNinja Ce sont les chemins absolus où tout est stocké. Peut-être vous attendiez quelque chose comme: '/ usr/local/include' mais cela ne contient que des liens symboliques vers les chemins que j'ai précédemment écrits. –