【发布时间】:2019-07-03 14:03:57
【问题描述】:
我正在安装 GSI V3.5 https://dtcenter.org/com-GSI/users/。我在 gcc 方面没有经验,所以我不能为此使用正确的术语。 编译程序后出现错误
”...... "/raid60/raid2/opt/local/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu /bin/ld: 找不到 Scrt1.o:没有这样的文件或目录 /raid60/raid2/opt/local/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/垃圾箱/LD: 找不到 crti.o:没有这样的文件或目录 /raid60/raid2/opt/local/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/垃圾箱/LD: 找不到-lm /raid60/raid2/opt/local/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3.0/../../../../x86_64-conda_cos6-linux-gnu/垃圾箱/LD: 找不到-lgomp"
gcc 好像有问题,找不到 目录包括 Scrt1.0、crti.o 等。我发现这些文件在 这个目录 /home/opt/anaconda/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib. 因为我没有管理员权限,所以我可以 不要安装 libc6-dev 之类的软件包。跟随 https://askubuntu.com/questions/251978/cannot-find-crti-o-no-such-file-or-directory 和 https://askubuntu.com/questions/251978/cannot-find-crti-o-no-such-file-or-directory, 我将上面的目录添加到 ~/.cshrc。
setenv LD_LIBRARY_PATH
/home/opt/anaconda/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib
但 gcc 仍然无法识别此路径。
我还尝试使用 LDFLGAS 将此路径输入到配置中
> ./configure
> LDFLAGS="-L/home/opt/anaconda/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib"
但没有成功。最后我将 LDFLAGS 添加到配置中
脚本。但它也没有奏效。任何帮助都非常感谢。
当然,预期的答案是让 gcc 识别路径
crti.o 和其他丢失的文件。
更新: 正如 Florian Weimer 所建议的,我制作了 crt.specs 文件。我还更新了配置中的相关行。这些文件位于 dropbox link 中。但我仍然遇到同样的错误。
更新 2。 这些是发生错误之前的一些行:
../write_obsdiags.o ../wrwrfmassa.o ../wrwrfnmma.o -L/opt/local/wrf_kpp/gsi35/comGSIv3.5_EnKFv1.1/lib -lsp_i4r8 -lsigio_i4r4 -lsfcio_i4r4 -lnemsio -lbacio -lw3nco_i4r8 -lbufr_i4r8 -lw3emc_i4r8 -lcrtm /opt/local/wrf_kpp/WRFV3//externalio_int/ libwrfio_int.a /opt/local/wrf_kpp/WRFV3//external/io_netcdf/libwrfio_nf.a /opt/local/wrf_kpp/WRFV3//frame/pack_utils.o /opt/local/wrf_kpp/WRFV3//frame/module_machine.o /opt/local/wrf_kpp/WRFV3//frame/module_driver_constants.o -L/home/srvx11/lehre/users/a1276905/.conda/envs/libgsi/lib -lnetcdff -lnetcdf -L/home/srvx11/lehre/users/a1276905/.conda/envs/libgsi/lib -L/home /srvx11/lehre/users/a1276905/.conda/envs/libgsi/lib -llapack -lblas -fopenmp /raid60/raid2/opt/local/bin/../lib/gcc/x86_64-conda_cos6-linux-gnu/7.3 .0/../../../../x86_64-conda_cos6-linux-gnu/bin/ld: 找不到 Scrt1.o:没有这样的文件或目录
更新 3 我使用选项 -B 将包含 crti.o 的目录添加到 gcc 的搜索路径中。 当我调用
gcc -print-search-dirs
我在已知路径中看到了我想要的路径“/home/opt/anaconda/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib”
库: =/home/opt/anaconda/x86_64-conda_cos6-linux-gnu/sysroot/usr/lib/x86_64-unknown-linux-gnu/5.3.0/:/home/opt/anaconda/x86_64-conda_cos6-linux-gnu/ sysroot/usr/lib/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/ ../../../../x86_64-unknown-linux-gnu/lib/x86_64-unknown-linux-gnu/5.3.0/:/usr/local/lib/gcc/x86_64-unknown-linux- gnu/5.3.0/../../../../x86_64-unknown-linux-gnu/lib/../lib64/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu /5.3.0/../../../x86_64-unknown-linux-gnu/5.3.0/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/.. /../../../lib64/:/lib/x86_64-unknown-linux-gnu/5.3.0/:/lib/../lib64/:/usr/lib/x86_64-unknown-linux-gnu /5.3.0/:/usr/lib/../lib64/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../../ x86_64-unknown-linux-gnu/lib/:/usr/local/lib/gcc/x86_64-unknown-linux-gnu/5.3.0/../../../:/lib/:/usr/lib /
但我还没有结束。
【问题讨论】: