我在我的MacOS上安装了带有Homebrew的netcdf和netcdf-cxx库,为了进行测试,我试图编译官方网站上的一个示例代码 https://www.unidata.ucar.edu/software/netcdf/examples/programs/SfcPresTempWr.cpp .
从…起 Linking and using netCDF with gcc ,我添加了2个链接器选项 -lnetcdf_c++ -lnetcdf 在编译命令中:
-lnetcdf_c++ -lnetcdf
g++ SfcPresTempWr.cpp -o SfcPresTempWr -lnetcdf_c++ -lnetcdf
但是链接器会产生错误
ld:找不到-lnetcdf_c的库++
我用安装了netcdf cxx brew install netcdf-cxx ,但中没有netcdf_c++或netcdf-cxx库 /usr/local/lib 或 /usr/lib . 你知道怎么解决这个问题吗?
brew install netcdf-cxx
/usr/local/lib
/usr/lib
我可以通过以下步骤使其工作:
使用搜索库位置 find /usr -name netcdf-cxx . 就我而言,地点是 /usr/local/Cellar/netcdf-cxx/4.3.1_1/lib/ .
find /usr -name netcdf-cxx
/usr/local/Cellar/netcdf-cxx/4.3.1_1/lib/
使用将库位置添加到编译命令 -L 选项和库名称 -l 选项在我的情况下,命令变成了:
-L
-l
g++ SfcPresTempWr.cpp -o SfcPresTempWr -L/usr/local/Cellar/netcdf-cxx/4.3.1_1/lib/ -lnetcdf-cxx4.1.1.0
原来我不需要添加 -lnetcdf 在命令结束时,没有 L 选项,它也编译成功。
-lnetcdf
L