2017-02-22 81 views
2

我的makefile文件的内容:加载时出错库

all: compile launch 

compile: 
    g++ main.cpp -c -I/media/eidan/soft/c++/Libraries/SFML-2.4.2/include 

launch: 
    g++ main.o -o result -L/media/eidan/soft/c++/Libraries/SFML-2.4.2/lib -lsfml-window -lsfml-system -lsfml-graphics 

当我试图启动程序,我得到这样的:

./result: error while loading shared libraries: libsfml-window.so.2.4: cannot open shared object file: No such file or directory 

虽然我SFML路径是正确的,文件libsfml窗口.so.2存在

我必须改变Makefile以使其工作?

PS:Ubuntu的16.04

+0

仔细检查你的路径,问题似乎与你的路径与文件SFML请 –

+0

'显示的ls -l /媒体/营团/柔和/ C++ /库/ SFML-2.4.2/lib目录/ libsfml窗口*' 除此之外,据我了解,你不是从Makefile启动程序,而是从你用手给出的命令行启动程序,对吧?然后我假设Makefile与错误信息无关。 – dmi

+0

@dmi![valid XHTML](http://imgur.com/OQakv5J)。 – Eidan

回答

0

这可以用以下方式之一来解决:
1.创建/etc/ld.so.conf.d/some.conf文件,并添加/媒体/营团/软/c++/Libraries/SFML-2.4.2/lib path there
2.创建启动脚本,在启动时导出链接共享库的目录LD_LIBRARY_PATH。可以手动导出任何启动的bash会话的库路径。
-L CFLAG仅供编译器使用。库路径不包含在最终的二进制文件中。