如何在自定义目录安装GSL库并修改RX-DMFIT的Makefile调用
操作步骤及Makefile修改方案
一、安装GSL到自定义目录
假设你将GSL安装到自己有权限的路径(比如/global/scratch/your_username/gsl-install,请替换为实际路径),执行以下命令:
- 解压下载的GSL源码包,进入解压后的目录
- 配置安装路径:
./configure --prefix=/global/scratch/your_username/gsl-install - 编译源码(
-j参数启用多线程编译,加快速度):make -j$(nproc) - 完成安装:
make install
二、修改RX-DMFIT的Makefile
打开RX-DMFIT目录下的Makefile,做以下两处修改:
1. 添加GSL路径变量
在原有的prefix变量下方新增gsl_prefix,指向你的GSL安装目录:
# prefix should point to location of darksusy prefix = /global/scratch/projects/general/RX-DMFIT/darksusy-6.3.1 # 新增:指定GSL的安装前缀 gsl_prefix = /global/scratch/your_username/gsl-install
2. 更新编译与链接选项
修改example1和example2的编译规则,添加GSL的头文件搜索路径、库文件搜索路径,以及运行时路径绑定:
example1: $(FILES) example1.cpp $(CXX) -o example1 $(FILES) example1.cpp \ -I$(prefix)/include -I$(gsl_prefix)/include \ -L$(prefix)/lib -L$(gsl_prefix)/lib \ -Wl,-rpath,$(gsl_prefix)/lib \ $(LDLIBS) example2: $(FILES) example2.cpp $(CXX) -o example2 $(FILES) example2.cpp \ -I$(prefix)/include -I$(gsl_prefix)/include \ -L$(prefix)/lib -L$(gsl_prefix)/lib \ -Wl,-rpath,$(gsl_prefix)/lib \ $(LDLIBS)
-I$(gsl_prefix)/include:告诉编译器到GSL的include目录查找头文件-L$(gsl_prefix)/lib:告诉链接器到GSL的lib目录查找库文件-Wl,-rpath,$(gsl_prefix)/lib:让编译后的程序运行时自动加载自定义路径下的GSL库,无需每次运行手动设置LD_LIBRARY_PATH环境变量
三、编译RX-DMFIT
修改完成后,在RX-DMFIT目录执行以下命令编译:
make
即可生成example1和example2可执行文件。
内容的提问来源于stack exchange,提问作者math_lover
相关产品推荐
相关产品推荐

