如何在共享库和静态库之间进行选择?

时间:2013-07-15 19:28:18

标签: c++ linux g++ sfml

我正在尝试从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 ++写什么,当他链接这些东西时他正在使用这些库?

1 个答案:

答案 0 :(得分:1)

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

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

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