我目前将其他链接选项作为:
不幸的是,这意味着我只能在安装libsfml-dev
时运行可执行文件,这对游戏开发来说是不可取的。每当我甚至更改其他链接器选项或搜索目录>链接器将导致错误:
error while loading shared libraries: libsfml-graphics.so.2.2.0: cannot open shared object file: No such file or directory
。我认为发生此错误是因为库是相对的,所以它是完全可移植的。
我正在使用Code :: Blocks(从图像中可以看到),我想知道如何相对链接到库。它们从Code :: Blocks运行时链接正常,但是当我运行可执行文件时,我得到了上述错误。我目前的Code :: Blocks选项是:
链接器选项:
(其他链接器选项为空)
搜索目录:
答案 0 :(得分:1)
您的第一个链接器选项将是正确的。
只有编译机器上才需要库libsfml-dev
。
还必须有另一个实际提供.so文件的包。除非您使用可执行文件打包这些.so文件,否则在运行可执行文件的计算机上也需要该文件。在这种情况下,您可能需要一个脚本将LD_LIBRARY_PATH
设置为包含打包的.so文件的本地目录,然后执行您的程序。