[英]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.