0

我正在尝试在 Linux 中运行 SFML 库中的标准示例。我已经从 Github 下载了 Rep.,使用 CMake 构建和安装它。我为静态/共享调试构建了 2 个库,为静态/共享发布构建了 2 个库。

现在的问题是,我对在终端中编译不太了解。我使用在 SFML 网站上找到的命令:

g++ -c 测试.cpp

g++ test.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system

这样可行。我可以通过 ./sfml-app 运行我的 SFML 应用程序并双击。但是其他使用 Linux 的人(没有安装 SFML)不能。我认为这是因为编译器不使用静态库。当然——他怎么可能?它没有写在命令中。但是我也不知道怎么写。

静态发布库的名称例如

libsfml-图形-sa

libsfml-window-sa

libsfml-系统-sa

我必须用 g++ 写什么,当他链接这些东西时他正在使用这个库?

4

1 回答 1

1

要将您的程序与库的静态版本链接,您将执行以下操作:

g++ test.o -o sfml-app libsfml-graphics-s.a libsfml-window-s.a libsfml-system-s.a

(当然,假设这些文件在您的本地目录中。)

于 2013-07-15T19:53:23.627 回答