在没有 libsfml-dev 的情况下链接到 SFML 库
Linking to SFML libraries without libsfml-dev
我目前的其他链接器选项为:
不幸的是,这意味着我只能在安装 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(从图中可以看出),我想知道如何 link 相对于库。当它是 Code::Blocks 的 运行 时,它们 link 很好,但是当我 运行 可执行文件时,我得到了上述错误。我当前的 Code::Blocks 个选项是:
链接器选项:
(其他 linker 选项为空)
搜索目录:
您的第一个链接器选项应该是正确的。
库 libsfml-dev
仅在编译机器上需要。
还必须有另一个实际提供 .so 文件的包。机器上也需要那个 运行 可执行文件,除非您将这些 .so 文件与可执行文件打包在一起。在这种情况下,您可能需要一个脚本来将 LD_LIBRARY_PATH
设置为包含打包的 .so 文件的本地目录,然后执行您的程序。
我目前的其他链接器选项为:
不幸的是,这意味着我只能在安装 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(从图中可以看出),我想知道如何 link 相对于库。当它是 Code::Blocks 的 运行 时,它们 link 很好,但是当我 运行 可执行文件时,我得到了上述错误。我当前的 Code::Blocks 个选项是:
链接器选项:
(其他 linker 选项为空)
搜索目录:
您的第一个链接器选项应该是正确的。
库 libsfml-dev
仅在编译机器上需要。
还必须有另一个实际提供 .so 文件的包。机器上也需要那个 运行 可执行文件,除非您将这些 .so 文件与可执行文件打包在一起。在这种情况下,您可能需要一个脚本来将 LD_LIBRARY_PATH
设置为包含打包的 .so 文件的本地目录,然后执行您的程序。