MacOS下Homebrew安装的NetCDF库无法链接问题求助
解决MacOS下Homebrew安装netcdf-cxx后编译找不到库的问题
先确认netcdf-cxx的安装路径和库文件名
执行命令查看brew安装的详细信息:brew info netcdf-cxx从输出里找到
Library location字段,M系列Mac通常是/opt/homebrew/lib,Intel Mac可能是/usr/local/lib。进入这个目录查看库文件,比如你会看到类似libnetcdf_c++.dylib或者libnetcdf-cxx.dylib的文件,链接选项里的库名就是去掉lib和.dylib后的部分(比如文件是libnetcdf_c++.dylib就用-lnetcdf_c++,如果是libnetcdf-cxx.dylib就用-lnetcdf-cxx)。编译时指定库搜索路径和正确库名
比如如果库路径是/opt/homebrew/lib,库名是netcdf_c++,编译命令改成:g++ SfcPresTempWr.cpp -o SfcPresTempWr -L/opt/homebrew/lib -lnetcdf_c++ -lnetcdf要是库名是
netcdf-cxx,就把-lnetcdf_c++换成-lnetcdf-cxx。更省心的方法:用pkg-config自动获取编译参数
先确认pkg-config能识别netcdf-cxx:pkg-config --list-all | grep netcdf如果能看到netcdf-cxx的条目,直接用下面的命令编译:
g++ SfcPresTempWr.cpp -o SfcPresTempWr $(pkg-config --libs --cflags netcdf-cxx netcdf)这个命令会自动添加正确的头文件路径、库搜索路径和链接库名,不用手动写参数。
额外检查:如果brew安装后pkg-config找不到库
把brew的pkg-config路径加到环境变量里,执行:export PKG_CONFIG_PATH=$(brew --prefix)/lib/pkgconfig:$PKG_CONFIG_PATH然后再用上面的pkg-config命令试试。
内容的提问来源于stack exchange,提问作者taka
相关产品推荐
相关产品推荐

