Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ /usr/bin/ld:找不到本地libmpifort.so 环境 ubuntu 18.04 我想安装ISSM(冰盖系统模型) 在这个过程中,它需要安装许多外部软件包 在make中,我收到了以下错误消息。 /usr/bin/ld:找不到-l/home/testuser/issm/trunk//externalpackages/mpich/install/lib/libmpifort.so_C++_Linux_Ubuntu_Makefile - Fatal编程技术网

C++ /usr/bin/ld:找不到本地libmpifort.so 环境 ubuntu 18.04 我想安装ISSM(冰盖系统模型) 在这个过程中,它需要安装许多外部软件包 在make中,我收到了以下错误消息。 /usr/bin/ld:找不到-l/home/testuser/issm/trunk//externalpackages/mpich/install/lib/libmpifort.so

C++ /usr/bin/ld:找不到本地libmpifort.so 环境 ubuntu 18.04 我想安装ISSM(冰盖系统模型) 在这个过程中,它需要安装许多外部软件包 在make中,我收到了以下错误消息。 /usr/bin/ld:找不到-l/home/testuser/issm/trunk//externalpackages/mpich/install/lib/libmpifort.so,c++,linux,ubuntu,makefile,C++,Linux,Ubuntu,Makefile,我遵循两个(?)一般解决方案,但我还没有找到合适的解决方案。 我想知道-l,但就我而言,我得到了-l 解决方案1:一般解决方案~失败 解决方案2:类似的解决方案~失败 -l(小写l)选项用于指定库名称而不是路径 要添加搜索库的路径,请使用-L选项 也可以将库的完整路径列为输入文件,但不带任何选项 因此,要么使用选项-L/home/testuser/issm/trunk/externalpackages/mpich/install/lib-lmpifort 或者使用普通的/home/testus

我遵循两个(?)一般解决方案,但我还没有找到合适的解决方案。 我想知道
-l
,但就我而言,我得到了
-l

解决方案1:一般解决方案~失败

解决方案2:类似的解决方案~失败

-l
(小写l)选项用于指定库名称而不是路径

要添加搜索库的路径,请使用
-L
选项

也可以将库的完整路径列为输入文件,但不带任何选项

因此,要么使用选项
-L/home/testuser/issm/trunk/externalpackages/mpich/install/lib-lmpifort


或者使用普通的
/home/testuser/issm/trunk//externalpackages/mpich/install/lib/libmpifort.so
作为inout文件(在其他对象文件之后)。

我使用此选项配置--mpi libflags=“-L$issm_DIR/externalpackages/mpich/install/lib-lmpi-L mpicxx-lmpifort”\Is not correct?##导致-l\的原因它是由于我的人为错误在
中的配置选项中使用了不正确的间距而生成的-l mpicxx…
感谢@some programmer dude和@Keith thompsion你说的“-l”是什么意思?您试图使用的不是任何东西的地址。导致-l\的原因是我的人为错误,
中配置选项的间距不正确-l mpicxx…
多亏了@some programmer dude和@Keith thompionm,我的观点是“/home/testuser/issm/trunk//externalpackages/mpich/install/lib/libmpifort.so”不是地址。
/usr/bin/ld: cannot find -lpgm
이는 링크 단계에서 libpgm.so.<숫자> 인 라이브러리를 링크시키지 못했다는 말입니다.

1) find / -name libpgm* -print 를 하여 libpgm.so.x 파일이 존재하는지를 파악하고, 없으면 라이브러리가 제대로 설치가 안된 것입니다.

2) 파일이 존재한다면 LD_LIBRARY_PATH 에 해당 디렉토리가 들어가 있지 않기 때문입니다.
bash의 경우 (libpgm.so.x 파일이 /xxx/xxx1/xxx2/ 디렉토리 밑에 존재한다면)

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/xxx/xxx1/xxx2/

3) 다시 컴파일 해보길.. 행운을 빕니다.

Nothing will be happen.
First, you need to know the naming rule of lxxx:

/usr/bin/ld: cannot find -lc
/usr/bin/ld: cannot find -lltdl
/usr/bin/ld: cannot find -lXtst
lc means libc.so, lltdl means libltdl.so, lXtst means libXts.so.

So, it is lib + lib-name + .so

Once we know the name, we can use locate to find the path of this lxxx.so file.

$ locate libiconv.so
/home/user/anaconda3/lib/libiconv.so   # <-- right here
/home/user/anaconda3/lib/libiconv.so.2
/home/user/anaconda3/lib/libiconv.so.2.5.1
/home/user/anaconda3/lib/preloadable_libiconv.so
/home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so
/home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2
/home/user/anaconda3/pkgs/libiconv-1.14-0/lib/libiconv.so.2.5.1
/home/user/anaconda3/pkgs/libiconv-1.14-0/lib/preloadable_libiconv.so
If you cannot find it, you need to install it by yum (I use CentOS). Usually you have this file, but it does not link to right place.

Link it to the right place, usually it is /lib64 or /usr/lib64

$ sudo ln -s /home/user/anaconda3/lib/libiconv.so /usr/lib64/

Done!

ref: https://i-pogo.blogspot.jp/2010/01/usrbinld-cannot-find-lxxx.html