我正在尝试从Linux中的SFML库运行标准示例。我从Github下载了Rep。使用CMake构建并安装它。我已经构建了2个用于静态/共享调试的库,以及2个用于静态/共享发布的库。
现在的问题,我对终端中的编译知之甚少。我使用我在SFML网站上找到的命令:
g ++ -c test.cpp
g ++ test.o -o sfml-app -lsfml-graphics -lsfml-window -lsfml-system
有效。我可以通过./sfml-app运行我的SFML应用程序并双击。但其他人(没有安装SFML)使用Linux不能。我认为这是因为编译器不使用静态库。当然 - 他怎么样?它不是在命令中写的。但我也不知道如何写它。
静态发布库的名称例如是
libsfml-图形S.A
libsfml窗口-S.A
libsfml系统-S.A
我必须用g ++写什么,当他链接这些东西时他正在使用这些库?
答案 0 :(得分:1)
要将程序与库的静态版本链接,请执行以下操作:
g++ test.o -o sfml-app libsfml-graphics-s.a libsfml-window-s.a libsfml-system-s.a
(当然,假设这些文件在您的本地目录中。)