繁体   English   中英

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

[英]How to choose between shared and static library?

我正在尝试从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应用程序,然后双击。 但是其他使用Linux的人(尚未安装SFML)则无法使用。 我认为这是因为编译器未使用静态库。 当然-他怎么能? 它没有写在命令中。 但是我也不知道该怎么写。

静态发布库的名称例如

libsfml-graphics-sa

libsfml-window-sa

libsfml系统

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM