与Boost和ncurses的静态链接
Static linking with Boost and ncurses
我正在制作一款基本的角色扮演游戏。我想静态地包含Boost库,这样运行我的游戏的人就不需要它们了。我研究并查找到,您所要做的就是将-static
添加到命令行编译中,所以我的命令如下:
$ g++ -static -o karthas *.o -lncurses -lmenu -lboost_system -lboost_filesystem
但显然-static
正在影响ncurses。我收到了一大堆错误,其中大部分都是未定义的对"SP"的引用。
是否可以只做一个到Boost而不是ncurses的静态链接?我该怎么做呢?
您可以选择哪些库将静态链接,哪些库将动态链接,方法是将-Wl,-static
或-Wl,-Bdynamic
放在它们的名称之前。
例如,使用:
g++ -o karthas *.o -Wl,-static -lmenu -lboost_system -lboost_filesystem -Wl,-Bdynamic -lncurses
菜单、boostrongystem和boost_filesystem库将静态链接,ncurses将动态链接。
(但您也可以将boost dll与可执行文件一起分发,而不是静态链接任何内容)。
但从这一点来看,你似乎并不孤单,或者我发现了你的问题。但这,可能有你的解决方案,无论哪种方式,祝你好运。顺便说一句,有些boost库只不过是包含在文件中时导入的内联函数。
相关文章:
- 基于boost的程序的静态链接——zlib问题
- 使用gcc从静态链接的文件中查找可选符号
- 使用转换器提升 Python 问题 - 静态链接
- C++实用程序::转换在静态链接库中不起作用
- 将源中的 GLEW 与 cmake 静态链接
- 在发布模式下启动使用库的静态链接编译的应用程序时出错
- libavdevice 和 x11 的静态链接库应该以什么顺序链接?
- 静态链接启用 PIC 的库时出现链接器 PIC 错误
- 静态链接库时,收到链接器错误:找不到 -lgcc_s
- 静态链接 glibc & boost_python36 for Python extension
- 我可以在C++中配置静态链接吗?
- 协议缓冲区的静态链接会导致与现有符号冲突
- C++标准是否定义了结构中成员函数的函数内定义是否必须具有静态链接?
- 静态链接 Visual Studio dll 到动态链接的 sfml 项目
- 我可以加载与库静态链接的 dll 吗?
- 静态链接MSVC库,动态链接Qt
- C++:找不到静态链接
- OpenSSL AES仅适用于某些计算机,即使具有静态链接也是如此
- CURL 静态链接未解析的外部符号
- 如何强制Windows.h在Visual Studio中静态链接而不是动态链接?