静态链接与Boost和ncurses

时间:2012-03-14 18:39:39

标签: c++ boost static-libraries ncurses

我正在制作基本的角色扮演游戏。我希望静态包含Boost库,以便运行我的游戏的人不需要它们。我研究并查找了你要做的就是将-static添加到命令行编译中,所以我的命令是这样的:

$ g++ -static -o karthas *.o -lncurses -lmenu -lboost_system -lboost_filesystem

但显然-static正在影响ncurses。我收到了一大堆错误,其中大部分错误都是对'SP'的未定义引用。

是否可以只进行Boost的静态链接而不是ncurses?我该怎么做呢?

2 个答案:

答案 0 :(得分:4)

您可以选择静态链接哪些库,以及通过在其名称前添加-Wl,-static-Wl,-Bdynamic来动态链接哪些库。

例如,使用:

g++  -o karthas *.o -Wl,-static -lmenu -lboost_system -lboost_filesystem -Wl,-Bdynamic -lncurses 

菜单,boost_system和boost_filesystem库将静态链接并动态进行ncurses。

(但你也可以用你的可执行文件分发boost dlls,而不是静态链接任何东西)。

答案 1 :(得分:0)

但是看this,看来你并不孤单,或者我找到了你的问题。但this可能有你的解决方案,无论哪种方式,祝你好运。 顺便说一下,一些boost库只不过是文件中包含的内联函数。