私はMacBook Pro(13-inch、Mid 2012)でMontecarloシミュレーションでgsl_rng.hを実装しようとしています。シミュレーションはすべてC言語で書かれています。私の問題は、gcc-6はコンパイルフラグにもかかわらずgslライブラリを見つけることができないと言うことです。Macでgslでコンパイルできない
すべての.cファイルに含まれているdeclare.hのトップは、私が働いている:
/* __________________ LIBRARIES ___________________*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
#include <gsl/gsl_rng.h>
エラー:私のメイクファイルに含ま
fatal error: gsl/gsl_rng.h: No such file or directory
コンパイルフラグを:
をINCLUDE = -I/usr/local/Cellar/gsl/2.4/include
LINK = -L/usr/local/Cellar/gsl/2.4/lib -lgsl -lgslcblas
gcc-6とgslの両方をHomebrew経由でインストールしました。
gcc-6でgslを見つける方法を教えてください。私の旗は間違っている?
メイク:
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
ls /usr/local/Cellar/gsl/2.4/include/gsl/
の出力は次のとおりです。
/usr/local/Cellar/gsl/2.4/include/gsl/gsl_rng.h
ls /usr/local/Cellar/gsl/2.4/include/
の出力は次のようになります。
gsl/
ls /usr/local/Cellar/gsl/2.4/include/gsl/
の出力が投稿には長すぎます、しかし、すべてがそこにあるはずです。
追加情報: 私は最終的にシミュレーションを実行するクラスタにコードがC++に準拠している必要があるため、gcc-6の代わりにg ++ - 6を使用しています。 makefileで
は '/ usr/local/Cellar/gsl/2.4'です。インクルードパスとlibパスは有効ですか? –
'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/include/'? –
@RetiredNinja これらはすべてが保存されている絶対パスです。 '/ usr/local/include'のようなものは期待していますが、これまでに書いたパスへのシンボリックリンクしか含まれていないかもしれません。 –